我在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>
请有人帮助我,这一直困扰着我。非常感谢你(真的)
答案 0 :(得分:0)
错误消息只表示查询没有返回任何行。也许,在您托管应用程序后,IIS或防火墙导致连接中出现此问题。检查防火墙是否已关闭并检查IIS用户帐户的权限。