0
我有Windows服務中運行的WCF服務。這工作正常,我能夠發送/接收SOAP消息到服務器。我可以從同一個Windows服務託管一個WCF和WebService嗎?
問題是我還希望能夠從同一服務(或更具體地說來自同一端口,因此只有一個端口需要可以訪問因特網)訪問靜態文件(簡單下載)。
用我現有的服務,我有方法,如:
public interface IMyServerService
{
[OperationContract]
[WebInvoke]
string ListValue(string arg1);
}
現在我已嘗試添加以下內容:
[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "/DownloadFile")]
System.IO.Stream DownloadFile();
通過以下實現:
public System.IO.Stream DownloadFile()
{
var context = System.ServiceModel.Web.WebOperationContext.Current.OutgoingResponse;
context.Headers.Add(System.Net.HttpResponseHeader.CacheControl, "public");
context.ContentType = "text/plain";
context.StatusCode = System.Net.HttpStatusCode.OK;
return new System.IO.FileStream(@"C:\test.txt", System.IO.FileMode.Open, System.IO.FileAccess.Read);
} // End of DownloadFile
我的目標是訪問https://service/DownloadFile,但是當我嘗試出現錯誤400時。
我想我的問題是,我能夠從相同的WCF服務內做到這一點,還是應該創建第二個服務來做到這一點?