WCF 跟踪。如何获得关闭连接的确切原因?

2023-11-23

在我的 WCF 服务中,当尝试传输大数据时,我不断收到错误:底层连接已关闭:连接意外关闭

我想知道是什么特殊原因引发了这个错误,所以我设置了WCF 跟踪并且可以阅读痕迹.svclog file.

问题是,我可以在这个文件中看到很多有关流程流程的信息,我可以看到出现异常的确切时间,但我看不到出现异常的确切原因。难道是因为最大接收消息大小或类似的东西。

是不是这样痕迹.svclog不能包含此类信息还是我做错了什么?

如何获得此类信息?

编辑(添加):

从我的服务器端 app.config:

    <system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="NAVBinding_ICustomer_Service"
                closeTimeout="01:50:00"
                openTimeout="01:50:00" receiveTimeout="01:50:00" sendTimeout="01:50:00"
                allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                maxBufferSize="2147483647" maxBufferPoolSize="2147483647"
                maxReceivedMessageSize="2147483647" messageEncoding="Text"
                textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
                <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
                    maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
                <security mode="None">
                    <transport clientCredentialType="None" proxyCredentialType="None"
                        realm="" />
                    <message clientCredentialType="UserName" algorithmSuite="Default" />
                </security>
            </binding>
        </basicHttpBinding>
    </bindings>
    <services>
        <service name = "Customer_Service"  behaviorConfiguration="returnFaults">
            <endpoint name="NAVBinding_ICustomer_Service"
               address  = "http://localhost:8000/nav/customer"
               binding  = "basicHttpBinding"
               bindingConfiguration= "NAVBinding_ICustomer_Service"
               contract = "NAVServiceReference.ICustomer_Service"/>
        </service>
    </services>
    <behaviors>
        <serviceBehaviors>
            <behavior name="returnFaults" >
                <serviceDebug includeExceptionDetailInFaults="true" />
                <serviceMetadata httpGetEnabled="true" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
 </system.serviceModel>

编辑(添加):

将 WCF 服务从“黑匣子”转变为易于排除故障的服务(它可以说明某些事情未按预期方式进行的原因)的正确且最佳的方法是什么? 您使用哪些工具、技术来排除 WCF 服务故障?


忽略 maxRequestLength 的问题(其他人已回答), 我将尝试回答您最初提出的有关如何排除 WCF 故障的问题。

如果您已经在使用服务跟踪查看器(我无法从问题中看出 如果您只是用手查看它们) - 可能所有细节都不是 进入文件。

当我想要真正的核心时,我启用所有日志记录参数 消息记录。 (这会生成一些大的服务日志,所以不要离开 它在)

 <system.serviceModel>
  <diagnostics>
   <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="-1" />
  </diagnostics>
 </system.serviceModel>

如果您不使用 Microsoft 服务跟踪查看器,我建议您这样做。它 提供了我追踪那些棘手的消息握手、消息所需的所有信息 尺寸异常等。这里有一个 MSDN 参考可以帮助您入门http://msdn.microsoft.com/en-us/library/aa751795.aspx

存在潜在问题的跟踪交互在屏幕上以黄色突出显示 左侧,右上角的详细窗格通常会突出显示特殊的 红色的服务事件。有时候你会遇到很多问题,因为你的内在 错误通过服务堆栈级联 - 但您可以在 跟踪查看器。

Troubleshooting Using the Service Trace Viewer

如果您的服务器“服务日志”中没有任何内容,那么您的异常可能完全发生在客户端 - 理论上您可能会超出某些客户端 在任何消息实际到达之前的侧面安全参数(消息大小等) Web 服务端 - 但客户端问题通常更容易追踪,因为您知道您只需要担心在客户端编辑配置文件(即,这不是因为客户端和服务器设置之间的任何交互)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WCF 跟踪。如何获得关闭连接的确切原因? 的相关文章

随机推荐

  • 在 POM 的 Maven 存储库条目中,默认情况下是否启用快照?

    A Maven POM可以定义一个 存储库 例如
  • 无法获取 BatchBridge,请确保您的捆绑包正确打包

    我正在尝试运行我创建的反应本机应用程序 当我最初在手机中运行它时 我看到以下屏幕 我尝试运行 react native start 当我运行它时 我得到以下输出 当它停止在 初始化包管理器 时 我在另一个终端中运行了 react nativ
  • 让 ffmpeg 与 Heroku 一起工作

    我尝试为我的 Heroku Rails 应用程序安装 ffmpeg 但现在我的应用程序崩溃了 我使用以下命令添加了一个构建包 heroku config add BUILDPACK URL https github com shunjiko
  • 从 .NET Windows 服务启动进程

    我正在尝试从 NET Windows 服务启动控制台应用程序 该服务在 Windows 2008 服务器上运行 我使用 Process Start 运行控制台应用程序并且它运行 我可以在任务管理器中看到它 但我从未取回进程 ID 并且对 P
  • R 中的 function(x):在不定义函数的情况下编写“函数”?

    我已经多次遇到这个概念 但不知道它的名称 因此无法通过谷歌搜索来了解更多信息 基本上 当查看其他人编写的函数甚至简单命令时 我经常会看到类似的内容 apply dataset 1 2 function x 10 x 在这种情况下 我能够以某
  • Bash 中的并行迭代 IP 地址

    我正在处理一个大型私有 8 网络 需要枚举正在侦听端口 443 并在其 HTTP HEADER 响应中声明特定版本的所有 Web 服务器 一开始我想跑nmap使用 connect 扫描并通过输出文件 grep 自己 但这会引发许多误报nma
  • python - subprocess.Popen().pid 返回父脚本的pid

    我正在尝试从另一个Python脚本运行一个Python脚本 并获取它的pid这样我就可以稍后杀掉它 I tried subprocess Popen 有论点shell True but thepidattribute returns the
  • 是否可以启用 source.organizeImports 而不删除未使用的导入?

    这就是我的用户中的内容settings json editor codeActionsOnSave source organizeImports true 喜欢这种排序 但不喜欢 Visual Studio Code 删除未使用的导入而不是
  • 如何在 Android 中创建滑块屏幕(如 Tweetdeck 中)?

    我们想要创建一个应该具有不同列表视图的屏幕 并且用户可以滑动 向左或向右 查看另一个列表视图 就像在 TweetDeck 和某些 Android 操作系统版本的主屏幕中一样 还有一个点列表 用于标识有多少列表视图 Please refer
  • SQL查询按时间戳的月份部分分组

    我真的不擅长 SQL 查询 但我正在学习 所以请原谅这个问题 这是我当前的查询 SELECT TIMESTAMP SUM electricity AS electricity siteID FROM table WHERE MONTH Ti
  • 重新生成会话 ID

    我正在考虑在每个页面上使用此代码以减少会话劫持的可能性 通过在每个请求上更新 session id if empty session session start 实现这一目标的另一种方法是这样做 if empty session sessi
  • window.requestFileSystem 不工作

    我正在 Firefox IE 9 Chrome 和 Opera 上尝试下面的代码 但是 onInitFs fs 函数没有被调用 如果我将 添加到 window requestFileSystem window PERSISTENT 1024
  • conda install -c anaconda gcc_linux-64 未使用

    我想在没有 root 访问权限的服务器上安装 gcc 的更新版本 我试过conda install c creditx gcc 7这不起作用 然后我发现conda install c anaconda gcc linux 64实际上安装了g
  • 来自 FBO 的 glReadPixels 因多重采样而失败

    我有一个带有颜色和深度附件的 FBO 对象 我渲染它然后使用它读取glReadPixels 我正在尝试添加多重采样支持 代替glRenderbufferStorage 我正在打电话glRenderbufferStorageMultisamp
  • .Net函数调用(C# F#) VS C++的性能

    由于 F 2 0 已成为 VS2010 的一部分 我对 F 产生了兴趣 我想知道使用它有什么意义 我读了一点 并制定了一个基准来衡量函数调用 我用过阿克曼函数 C sealed class Program public static int
  • gitlab 通过命令行获取特定分支的 tar

    我用的是gitlab 当我进入界面时 在每个分支上我都可以下载 zip tar 或其他形式的源代码 我正在制作 rpm 规范文件 我需要能够使用命令行下载 tar 球 因为我添加了我的 rsa 密钥 所以我可以毫无问题地进行 git 克隆
  • “或”运算符不返回布尔值的动机是什么?

    首先 代码 gt gt gt False or hello hello 这种令人惊讶的行为可以让您检查是否x is not None并检查值x一行 gt gt gt x 10 if randint 0 2 1 else None gt gt
  • 使用核心动画 (CAKeyFrameAnimation) 调整 UIView 的大小和移动

    这可能吗 我可以更改图层的不透明度和位置 中心 但每当我尝试更改大小或原点时 它都不起作用 CAAnimationGroup anigroup CAAnimationGroup new CGMutablePathRef thePath CG
  • 使用异步而不等待

    我想让一个函数异步 所以我只需添加async像这样 public async static void something 可以看到它的返回类型是void 我只想异步调用这个函数而不阻塞 因为 return 是void so no await
  • WCF 跟踪。如何获得关闭连接的确切原因?

    在我的 WCF 服务中 当尝试传输大数据时 我不断收到错误 底层连接已关闭 连接意外关闭 我想知道是什么特殊原因引发了这个错误 所以我设置了WCF 跟踪并且可以阅读痕迹 svclog file 问题是 我可以在这个文件中看到很多有关流程流程