【问题标题】:How to debug a WCF service in a hosted solution?如何在托管解决方案中调试 WCF 服务?
【发布时间】:2011-10-13 00:59:28
【问题描述】:

我创建了一个相当简单的 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");
    }
}

【问题讨论】:

  • 你需要操作是IsOneWay = true吗?如果不是,您将能够收到响应,以防服务器出现错误。
  • @carlosfigueira 我关闭了 IsOneWay,现在服务器返回一个网页,上面写着 The server encountered an error processing the request. See server logs for more details.。这基本上让我想到了最初的问题——我似乎无法调试代码。

标签: c# wcf .net-3.5 hosted


【解决方案1】:

你有一个有趣的问题,我玩弄了它,并在http://blogs.msdn.com/b/carlosfigueira/archive/2011/08/02/wcf-extensibility-system-diagnostic-tracing.aspx 的帖子中写了一个解决方案。

基本上,您需要添加一个自定义跟踪侦听器,该侦听器将从您的应用程序中收集跟踪,而不是跟踪到文件(这是进行跟踪的常用方法)。您可以使用 GoDaddy 提供的数据库之一(MySql、SqlServer、EasyDB),或类似帖子中链接的代码示例,将跟踪存储在内存中并通过另一个 WCF 服务公开它们。

【讨论】:

    【解决方案2】:

    尝试关注

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

    如果不行我也试试

    [OperationContract]
    

    这样,如果服务发生问题,您将在客户端获得反馈。

    【讨论】:

    • 您的解决方案需要 WebContentType 属性,该属性不在 .NET 框架中。
    猜你喜欢
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    相关资源
    最近更新 更多