我有一个在 c# 上运行的 Web 服务,但最近发生了一些奇怪的事情。即使我从只有 1 个值的简单表中查询,如下所示:
string str = "";
using (SqlConnection connection = new SqlConnection(ConfigurationSettings.AppSettings["Main.ConnectionStringTD"]))
{
connection.Open();
try
{
SqlCommand selectCommand = new SqlCommand
{
CommandType = CommandType.Text,
Connection = connection,
CommandText = "select Version from TN_Version"
};
str = selectCommand.ExecuteScalar().ToString();
}
catch (Exception exception)
{
str = "ERROR:" + exception.Message + "_" + exception.InnerException.Message;
Console.WriteLine(exception.Message ?? "");
}
return str;
}
当我在本地调试时,这总是返回正确的值,但每当我在主机上发布此服务并执行它时,都会返回错误消息:
位置 0 处没有行。
这真的很奇怪,因为这是一个简单的表格,绝对没有任何变化或删除其值......
错误
我必须执行该服务 3 或 4 次,直到它为我获得正确的值:
<string xmlns="http://webservice.com/">6.7</string>
拜托,有人帮助我,这一直困扰着我。非常感谢你(真的)
错误消息仅表示查询未返回任何行。 所以也许,在您托管应用程序后,IIS 或防火墙会导致连接中出现此问题。 检查是否关闭了防火墙,并检查 IIS 用户帐户的权限。