Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
System.ServiceModel.FaultException SQL错误,是否已结束?_Sql_Sql Server_Vb.net_Wcf - Fatal编程技术网

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

System.ServiceModel.FaultException SQL错误,是否已结束?,sql,sql-server,vb.net,wcf,Sql,Sql Server,Vb.net,Wcf,因此,在对Web服务进行方法调用时,我得到以下错误: “System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]:建立到SQL Server的连接时发生与网络相关或特定于实例的错误。找不到或无法访问该服务器。请验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40-无法打开到SQL Server的连接)(故障详细信息等于ExceptionDetail,

因此,在对Web服务进行方法调用时,我得到以下错误:

“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.OneError(SqlException异常,布尔断开连接) 位于System.Data.SqlClient.TdsParser.ThroweException和Warning(TdsParserStateObject stateObj) 在System.Data.SqlClient.TdsParser.Connect(ServerInfo ServerInfo、sqlinternalconnectionds connHandler、Boolean ignoresnopentimeout、Int64 timerExpire、Boolean encrypt、Boolean trustServerCert、Boolean integratedSecurity、SqlConnection owningObject) 位于System.Data.SqlClient.SqlInternalConnectionDS.AttemptOneLogin(ServerInfo ServerInfo,Str…)

这可能是什么?起初我以为它是在本地出现的,但下面有人指出,因为错误被包装在ServiceModel.FaultException中,它可能在主机端。它肯定是在主机端吗?或者这可能是在我端吗


查看下面的评论,了解故障排除的进展情况…

似乎您正试图通过命名管道访问sql server;此协议仅允许您在sql server位于同一子网时连接到sql server。只需将协议更改为tcp。

此服务在您的开发设备上运行正常,但在部署时失败吗ybe这两个位置和SQL Server之间的防火墙不同。从命令行看,“TELNET YourSqlServer 1433”是给您一个空白屏幕,还是超时

如果您可以验证服务是否在某个地方(如VisualStudio或您的dev box)工作,那么这就是开始的地方—工作位置和非工作位置之间有什么不同


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

这是在服务端。此外,这些人没有遵循安全基本原则,并在soap故障中包含内部异常详细信息


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

在dev box和部署的环境中,它都会引发相同的异常。这不是一个错误超时…它发生在服务呼叫后大约一秒钟内…我很快confused@Scott-您可以发布您正在使用的连接字符串吗?如果需要,请屏蔽密码或任何其他敏感信息。--这是服务项目中的cnnstr以及我的app@Scott别忘了包括用户/密码。那会lp us确定问题的真正原因。@Scott-您之前说过它有效,但“没有任何变化”-很明显,有些事情发生了变化,要想弄清楚发生了什么,需要进行消除。长期而言,将其添加到连接字符串中是不必要的,但它会强制TCP,您可以看到这是否有效-然后您就可以开始进行故障排除了。您可能应该在开发工作站上安装TELNET客户端来测试连接连接也是这样-我怀疑网络发生了变化,阻止了1433端口上的sql连接。也许TCP在您的本地sql客户端中被禁用了-也许吧?主要的是,这段代码以前已经运行过,但突然停止了,什么都没有改变……我问公司内部的某个人它是否可以在网络上服务结束了,但他们不相信它是好的。现在已经两天了,我每天都会重新启动SQL server不止一次,但它也在部署的机器上,而且服务器每天都会重新启动。同样的错误。问题是,如果是我们的数据库,而不是数据库,那么不是所有的东西都不起作用吗?其他的一切都起作用了…我不太喜欢熟悉WCF,但事实上,它包装在FaultException中,这是否意味着它来自远程服务器,而不是连接的本地端?如果它位于本地端,您可能会有一个SQLException,并且该异常会通过WCF通道传递给您。这是非常可能的,也是我的第一个想法,然而r、 …这里的其他人对此有不同的看法。他们认为这是本地的。但是,如果从SOAP客户端接收到SQL连接,那么故障异常会与SQL连接有关吗?非常感谢。但是,你确定这是他们的问题吗?--主要原因是我不想给他们设置错误,让它成为我们这边的一个简单修复程序--尽管我一直在这样做我的头撞了一会儿,几乎肯定这是他们干的。用伐木机或小提琴手来寻找证据。