2012-01-19 8 views
0

Windowsサービス内からWCFサービスを実行しています。これは問題なく動作しており、サーバーにSOAPメッセージを送受信できます。同じWindowsサービスからWCFとWebServiceをホストすることはできますか?

問題は、この同じサービス(またはより具体的には同じポートから静的ファイル(簡単なダウンロード)にアクセスでき、1つのポートだけがインターネットにアクセス可能である必要があることです)です。

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 

:次の実装では

[OperationContract] 
    [WebGet(BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "/DownloadFile")] 
    System.IO.Stream DownloadFile(); 

:私は今、以下を追加しようとしました

public interface IMyServerService 
{ 
    [OperationContract] 
    [WebInvoke] 
    string ListValue(string arg1); 
} 

:私の既存のサービスで

、私は、次のようなメソッドを持っています私の目標はhttps://service/DownloadFileにアクセスすることですが、試してみると400というエラーが表示されます。

私は同じWCFサービスの中からこれを行うことができますか、そうするために2番目のサービスを作成する必要がありますか?

答えて

1

正しいバインディング(新しい機能のwebHttpBindingのような)を設定することができます。質問は、あなたですか?通常、ServiceContractは特定の機能をグループ化します。このファイルのダウンロードが新しいサービスで、既存のサービスとは何の関係もない場合は、新しいサービスを作成します。

関連する問題