簡體   English   中英

如何在托管解決方案中調試WCF服務?

[英]How to debug a WCF service in a hosted solution?

我創建了一個相當簡單的Web服務,它有一個方法:UploadFile。 顯然,它適用於我的機器©。 但是,一旦我上傳它,方法返回狀態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");
    }
}

你有一個有趣的問題,我玩了它並在http://blogs.msdn.com/b/carlosfigueira/archive/2011/08/02/wcf-extensibility-system-diagnostic-的帖子中寫了一個解決方案。 tracing.aspx

基本上,您不是跟蹤文件(這是執行跟蹤的常用方法),而是添加一個自定義跟蹤偵聽器,它將從您的應用程序中收集跟蹤。 您可以在帖子中鏈接的代碼示例中使用GoDaddy(MySql,SqlServer,EasyDB)等提供的數據庫之一,將跟蹤存儲在內存中,並通過另一個WCF服務公開它們。

嘗試下面

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

如果它不起作用我也會嘗試

[OperationContract]

這樣,如果在服務上發生某些事情,您將在客戶端獲得反饋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM