0

UploadFileという1つのメソッドを持つ非常に単純なWebサービスを作成しました。明らかに、それは私のマシン©で動作します。ただし、アップロードすると、メソッドはステータス202(承認済み)を返します。ただし、ファイルがそこに到着することはなく、私が見ることができるエラーはありません。コードのようにほぼ毎秒ログを追加しましたが、メソッドが実際に実行されるようには見えません。

そのようなものをデバッグするにはどうすればよいですか?

参考までに、サーバー側のコードは次のとおりです。

[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");
    }
}
4

2 に答える 2

2

あなたは興味深い問題を抱えています、そして私はそれをいじって、 http://blogs.msdn.com/b/carlosfigueira/archive/2011/08/02/wcf-extensibility-system-diagnostic-の投稿に解決策を書きましたtrace.aspx

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

于 2011-08-02T04:20:32.983 に答える
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]

このようにして、サービスで何かが発生した場合、クライアント側にフィードバックがあります。

于 2011-07-26T03:41:58.047 に答える