Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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
C# 在Azure中发布时Web应用程序的行为不同_C#_Jquery_Azure - Fatal编程技术网

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

C# 在Azure中发布时Web应用程序的行为不同,c#,jquery,azure,C#,Jquery,Azure,我创建了一个web应用程序,在其中我调用c#method。在c#方法中,我返回一个对象,该对象包含1、2、3这样的值。当我在本地主机上运行应用程序时,我得到了对象的确切值。但是,当我在AZURE中发布此应用程序而不做任何更改时。我没有得到像1,2,3这样的值,而是得到值System.Object。 我不理解这种奇怪的行为。请帮助我。 这是我的密码: $('#btn').click(function(){ PageMethods.SaveNDig(obj, OnComplete); });

我创建了一个web应用程序,在其中我调用c#method。在c#方法中,我返回一个对象,该对象包含1、2、3这样的值。当我在本地主机上运行应用程序时,我得到了对象的确切值。但是,当我在AZURE中发布此应用程序而不做任何更改时。我没有得到像1,2,3这样的值,而是得到值System.Object。 我不理解这种奇怪的行为。请帮助我。 这是我的密码:

$('#btn').click(function(){
    PageMethods.SaveNDig(obj, OnComplete);
});
C#方法:


ExecuteScalar返回一个对象。我已经看到了您提到的这个问题——事实上,我遇到了您的问题,正在寻找Azure和ExecuteScalar的问题。ExecuteScalar被记录为返回返回对象第一行中的第一列

仅供参考,我们使用实体框架,所讨论的数据库驻留在本地和云中。在本地,我的inserts使用ExecuteScalar查找,但返回的对象没有用处。试图强制转换它会引发InvalidCast异常

我已经开始用ExecuteOnQuery替换ExecuteScalar,到目前为止效果很好

下面是一篇文章,我发现这篇文章对解决我基于Azure的DB访问问题最有帮助


您不能总是吞下异常来查看查询是否有问题
catch(Exception ex){}
添加一些日志记录或远程调试它。您考虑过使用实体框架吗?
[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;
}