2011-07-26 11 views
0

私はかなり単純に1つのメソッドを持つWebサービスを作成しました:UploadFile。明らかに、それは私のマシンで動作します©。しかし、一度アップロードすると、メソッドはステータス202(Accepted)を返します。しかし、ファイルはそこに到着することはなく、私には見えるエラーはありません。私はほとんどすべての秒のようなコードにログを追加しましたが、メソッドが実際に実行されるようには見えません。ホストされたソリューションでWCFサービスをデバッグする方法はありますか?

どうすればそのようなものをデバッグできますか?ここで

は、参考のために私のサーバー側のコードです:

[ServiceContract] 
interface IUploaderService 
{ 
    [OperationContract(IsOneWay = true)] 
    [WebInvoke(Method = "POST", UriTemplate = "/UploadFile?fileName={fileName}")] 
    void UploadFile(string fileName, Stream fileContents); 
} 


[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] 
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
public class UploaderService : IUploaderService //ServiceHostFactory 
{ 
    public void UploadFile(string fileName, Stream fileContents) 
    { 
     Log.Add("In UploadFile"); 
    } 
} 
+1

IsOneWay = trueにする操作が必要ですか?そうでない場合は、サーバーにエラーが発生した場合に応答を受け取ることができます。 – carlosfigueira

+0

を参照してくださいhttp://stackoverflow.com/questions/664712/restful-wcf-service-image-upload-problem/664826#664826 – Yahia

+0

@carlosfigueira私はIsOneWayを無効にして、今度はサーバーが「Theサーバーで要求の処理中にエラーが発生しました。詳細はサーバーログを参照してください。基本的に私は元の質問に私をもたらします - 私はコードをデバッグすることはできません。 – AngryHacker

答えて

2

あなたは興味深い問題を抱えており、私はそれを使って遊んで、http://blogs.msdn.com/b/carlosfigueira/archive/2011/08/02/wcf-extensibility-system-diagnostic-tracing.aspxの投稿に解決策を書いた。

基本的には、ファイルへのトレース(トレースを行う通常の方法)ではなく、アプリケーションからトレースを収集するカスタムトレースリスナーを追加します。あなたは、GoDaddy(MySql、SqlServer、EasyDB)が提供するデータベースのいずれかを使用するか、ポストにリンクされているコードサンプルを使用してトレースをメモリに保存し、別のWCFサービスを介して公開することができます。

0

試して、それが動作しない場合場合

[ServiceContract] 
interface IUploaderService 
{ 
    [OperationContract(IsOneWay = true)] 
    [WebInvoke(Method = "POST", UriTemplate = "/UploadFile?fileName={fileName}")] 
    [WebContentType("application/octet-stream")] 
    void UploadFile(string fileName, Stream fileContents); 
} 

次私も

[OperationContract] 

をこのようにしようとするだろうサービス上何かが起きると、クライアント側でフィードバックが得られます。

+0

ソリューションには.NET Frameworkに含まれていないWebContentType属性が必要です。 – AngryHacker

関連する問題