在Azure中发布时Web应用程序的行为不同
本文关键字:应用程序 Web Azure 布时 | 更新日期: 2023-09-27 17:58:07
我创建了一个web应用程序,在其中调用c#方法。在c#方法中,我返回一个对象,该对象包含一个值,如1、2、3。当我在localhost中运行应用程序时,我会得到对象的确切值。但是,当我在AZURE中发布此应用程序时,没有进行任何更改。我没有得到像1、2、3这样的值,但我得到的是System。对象我不理解这种奇怪的行为。请帮帮我。这是我的代码:
$('#btn').click(function(){
PageMethods.SaveNDig(obj, OnComplete);
});
C#方法:
[WebMethod]
public static string SaveNDig(Object obj)//string CourseName, string CourseCategoryURL, string CourseCategoryName, string CourseInfo, string PassPercentage, string TextBooks, string GradingSchemes
{
object result = database.ExecuteScalar("select userid from EUser where username ='" + username + "'");
return result;
}
public static object ExecuteScalar(string query)
{
object obj = new object();
try
{
con = InitializeConnection();
cmd = new SqlCommand(query, con);
con.Open();
obj = cmd.ExecuteScalar();
}
catch (Exception ex) { }
finally
{
if (con.State == System.Data.ConnectionState.Open)
{
con.Close();
}
}
return obj != null ? obj : null;
}
ExecuteScalar返回一个Object。我已经看到了你所指的这个问题——事实上,我在寻找Azure和ExecuteScalar的问题时遇到了你的问题。ExecuteScalar被记录为返回返回对象的第一行中的第一列。
仅供参考,我们使用实体框架,有问题的数据库位于本地和云中。在本地,我的插入工作使用ExecuteScalar进行查找,但返回的Object是无用的。试图强制转换它会引发InvalidCast异常。
我已经开始用ExecuteNonQuery替换ExecuteScalar,到目前为止效果很好。
这是一篇文章,我发现它在排除我基于Azure的数据库访问故障时最有帮助…
https://www.simple-talk.com/blogs/2012/05/31/3-tips-for-sql-azure-connection-perfection