在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;
}

在Azure中发布时Web应用程序的行为不同

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