代码之家  ›  专栏  ›  技术社区  ›  Scott

System.ServiceModel.FaultException SQL错误,是否已结束?

  •  2
  • Scott  · 技术社区  · 14 年前

    因此,当对WebService进行方法调用时,我会得到以下错误:

    “System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]:建立到SQL Server的连接时发生与网络相关或特定于实例的错误。找不到或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40-无法打开到SQL Server的连接)(错误详细信息等于exceptiondetail,可能由includeExceptiondetailinFaults=true创建,其值为: System.Data.sqlclient.sqlException:建立到SQL Server的连接时发生与网络相关或特定于实例的错误。找不到或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40-无法打开到SQL Server的连接) 在system.data.sqlclient.sqlInternalConnection.onerror(sqlException异常,布尔breakConnection) at system.data.sqlclient.tdsarser.throwExceptionandWarning(tdsarserStateObject StateObj) 在system.data.sqlclient.tdsparser.connect上(serverinfo serverinfo、sqlinterconnectiontds connhandler、boolean ignoreniopentimeout、int64 timerexpire、boolean encrypt、boolean trustservercert、boolean integrated security、sqlconnection owningobject) 在system.data.sqlclient.sqlInternalConnectionTds.attemptoneLogin(serverinfo serverinfo,str…)上。“

    这可能是什么?起初我以为它是从本地传入的,但下面有人指出,由于错误被serviceModel.faultexception包装,所以它可能在主机端。这肯定是他们的目的吗?或者有什么可能的方法可以让我结束这一切?

    查看下面的评论,了解到目前为止的故障排除方法…

    3 回复  |  直到 14 年前
        1
  •  2
  •   Ladislav Mrnka    14 年前

    这是服务端。此外,这些人不遵循安全基础知识,并将内部异常详细信息包含到SOAP错误中。

    您使用基于HTTP的传输通道吗?如果是这样,那么使用fiddler,从服务中捕获SOAP错误,并将其发送给公司,以证明错误在他们这边。如果使用其他传输通道或加密,请使用 WCF message logging 再次向公司发送记录的消息。

        2
  •  1
  •   SqlRyan    14 年前

    该服务在您的dev-box上运行正常,但在部署时失败吗?可能这两个位置和SQL Server之间的防火墙有所不同。在命令行中,“telnet yoursqlserver 1433”是给您一个空白屏幕,还是超时?

    如果您可以验证服务是否在某个地方工作(如Visual Studio或您的开发人员对话框),那么这就是要启动的地方——工作和非工作位置之间有什么不同?

    如果没有,Web服务调用是否会立即失败并显示该消息,还是在30秒后失败?延迟故障表示超时,此时可能会配置立即故障。

        3
  •  0
  •   Denis Valeev    14 年前

    似乎您正试图通过命名管道访问SQL Server;此协议仅允许您在SQL Server位于同一子网中时连接到它。只需将协议更改为TCP即可。