小编Roy*_*Roy的帖子

如何解决WCF中的PipeExceptions和CommunicationExceptions?

我有一个由几个WCF服务组成的应用程序,其中一些服务在Workflow Foundation(.NET 3.5)中实现,其他服务只是简单的C#.出于性能原因,这些服务通过netNamedPipeBinding相互通信.麻烦的是,一旦系统负载增加,我就会看到越来越多的CommunicationExceptions和底层的PipeExceptions.有趣的是,这些交易似乎最终完成.其中一个原因是我们在工作流中有一个重试机制,但即使我在WCF跟踪中看到这些错误,即使来自普通C#服务的调用也会成功.在Windows的命名管道子系统中有什么重试机制吗?

但是,我希望修复这些错误,或者至少了解潜在的问题.我觉得它们正在影响应用程序的性能和稳定性.如果我没有看到来自服务本身的任何其他异常,我该如何正确地诊断和诊断这些错误的根本原因?

以下是我得到的一些例外情况:

PipeException: 从管道读取错误:管道已结束.(109,0x6d).

和:

PipeException: 由于管道已关闭,因此无法完成操作.这可能是由管道另一端的应用程序引起的.

在TimeoutException中: 管道连接已中止,因为管道的异步读取未在分配的超时00:02:00内完成.分配给此操作的时间可能是较长超时的一部分.

现在超时异常似乎来自系统处理负载的问题.这些操作通常很小,但它们的数量似乎是问题所在.或者这可能是先前管道连接的结果被终止而没有返回池中?

我已尝试在WCF配置中尝试使用serviceThrottling行为来增加实例数等,但这些错误不断涌现.有小费吗?

/编辑:我确实打开了WCF跟踪和消息记录.这就是我看到PipeExceptions和CommunicationExceptions的地方.应用程序本身没有显示任何错误.我们已经对WCF服务进行了相当多的检测,以便使用log4net记录所有异常,并且我根本看不到这些日志中的任何错误.这一切似乎都发生在WCF级别.

wcf netnamedpipebinding workflow-foundation .net-3.5

9
推荐指数
1
解决办法
2585
查看次数

如何将NSHttpCookie转换为MonoTouch中的System.Net.Cookie?

我有一个MonoTouch iPhone应用程序通过Azure访问控制服务进行联合登录.登录通过嵌入式UIWebView浏览器完成.登录完成后,我想将cookie转移到我的应用程序中.我可以访问

NSHttpCookieStorage.SharedStorage.Cookies
Run Code Online (Sandbox Code Playgroud)

集合,所以我可以找到cookie.但是为了调用后端服务,我需要有一个

System.Net.Cookie
Run Code Online (Sandbox Code Playgroud)

我可以放入CookieContainer发送到服务.

我如何在两者之间进行转换......这是唯一的方法吗?

NSHttpCookie cookie = NSHttpCookieStorage.SharedStorage.Cookies[0];
System.Net.Cookie newCookie = new System.Net.Cookie()
    {
        Name = cookie.Name,
        Value = cookie.Value,
        Version = (int) cookie.Version,
        Expires = cookie.ExpiresDate,
        Domain = cookie.Domain,
        Path = cookie.Path,
        Port = cookie.PortList[0].ToString(), // is this correct??
        Secure = cookie.IsSecure,
        HttpOnly = cookie.IsHttpOnly
    };
Run Code Online (Sandbox Code Playgroud)

iphone xamarin.ios

6
推荐指数
1
解决办法
893
查看次数

Silverlight中SaveFileDialog中缺少DefaultFileName的最优雅的解决方法是什么?

Silverlight中的SaveFileDialog缺少DefaultFileName属性,导致用户必须手动输入文件名,并从Silverlight应用程序下载每个文件.

这非常令人讨厌,并且有很多批评,请参阅Silverlight论坛.

我的问题是:最优雅的解决方法是什么?

silverlight savefiledialog

5
推荐指数
1
解决办法
619
查看次数

VSTO 2007:如何确定范围的页面和段落编号?

我正在构建一个MS Word加载项,它必须从文档中收集所有评论气球并在列表中汇总它们.我的结果将是一个ReviewItem类列表,其中包含Comment本身,段落编号和注释文本所在的页码.

我的部分代码如下所示:

    private static List<ReviewItem> FindComments()
    {
        List<ReviewItem> result = new List<ReviewItem>();
        foreach (Comment c in WorkingDoc.Comments)
        {
            ReviewItem item = new ReviewItem()
            {
                Remark = c.Reference.Text,
                Paragraph = c.Scope. ???, // How to determine the paragraph number?
                Page = c.Scope. ??? // How to determine the page number?
            };
            result.Add(item);
        }
        return result;
   }
Run Code Online (Sandbox Code Playgroud)

该类的Scope属性Comment指向注释所涉及的文档中的实际文本,并且是类型Microsoft.Office.Interop.Word.Range.我无法弄清楚如何确定该范围所在的页面和段落.

对于段落编号,我实际上是指段落的"编号列表"编号,例如"2.3"或"1.3.2".

有什么建议?谢谢!

c# vsto ms-word

2
推荐指数
2
解决办法
8564
查看次数