Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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# Json内部服务器错误_C#_Asp.net_Json_Web Services_Internal Server Error - Fatal编程技术网

C# Json内部服务器错误

C# Json内部服务器错误,c#,asp.net,json,web-services,internal-server-error,C#,Asp.net,Json,Web Services,Internal Server Error,您好,我遵循下面的post in代码项目创建http处理程序,使用Json脚本在asmx文件中调用web方法。我得到了服务器间错误,这是由json脚本中捕获的错误引发的 我的代码如下: ASMX [System.Web.Script.Services.ScriptService] 公共类CurrentHistoryfunctions:System.Web.Services.WebService { [网络方法] [ScriptMethod(ResponseFormat=ResponseForma

您好,我遵循下面的post in代码项目创建http处理程序,使用Json脚本在asmx文件中调用web方法。我得到了服务器间错误,这是由json脚本中捕获的错误引发的

我的代码如下:

ASMX
[System.Web.Script.Services.ScriptService]
公共类CurrentHistoryfunctions:System.Web.Services.WebService
{
[网络方法]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
公共静态列表GetEmployeeSummaryCurrent(字符串empNo)
{
EmployeeRepository empsumcurr=新员工Repository();
雇员总电流(empNo);
}
}
Json脚本:
$.ajax({
类型:“post”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
url:“Services/CurrentHistoryfunctions.asmx/GetEmployeeSummaryCurrent”,
数据:JSON.stringify(emp),
成功:功能(resp){
var acc=[]
如果(分别为d[0]!=null){
$.each(分别为d[0],函数(索引,值){
acc.push(索引+':'+值);
});
$('#CurInfo').empty();
$(“#CurInfo”).append(“”+”员工姓名:“+”+resp.d[0]。EMPName+”

“+”“+”雇佣日期:“+”+resp.d[0]。EMPHRDate+”

“+”员工状态:“+”+resp.d[0]。EMPSTUS+”

“+”“+”地址:“+”+resp.d[0]。EMPADDR1+resp.d[0]。EMPADDR2+”+'.EMPCity++'

'+''+'状态:'+'+'+resp.d[0].EMPState++'

'+'Zip:'+'+'+resp.d[0].EMPZip++'

'

'+'AU:'+'+resp.d[0].EMPAUCode++'

''+'位置:'+'+'+++++.d[0].位置:'

''>''>'''>'>'+'.性别+“

”); } 否则{ $('#CurInfo').empty(); $(“#CurInfo”).append(“”+”未找到员工的当前数据“+”

”); } }, 错误:函数(jqXHR、textStatus、errorshown){ 警报('TextStatus:'+TextStatus+'errorhorn:'+errorhorn); } })

请帮助我解决此内部错误问题。

既然您在回答我的问题时询问了如何禁用延迟加载和代理创建,我将继续假设您使用的是实体框架。这仅适用于使用实体框架的情况

您确实需要禁用代理创建。这确保了在序列化过程中不会发生延迟加载,并导致内部服务器错误。您可以通过在创建上下文对象后访问它,访问其配置属性,然后将配置属性的ProxyCreationEnabled值设置为false来实现这一点。在检索任何要序列化的对象之前,必须将其关闭。在这种情况下,在存储库方法中检索RefEmployee对象之前,需要关闭代理创建。确保在检索完要序列化的对象后将其重新打开,除非您确定在该上下文的剩余生存期内不需要代理


您可能还想了解实体框架代理和延迟加载。

我通过删除方法的静态属性解决了问题。Web服务不允许将方法声明为静态的,这就是我的代码无法工作的原因,但在删除静态声明后,它开始正常工作。

您可以从服务器提供错误消息吗?您的模型类是否使用实体框架?如果是这样,并且您没有禁用代理创建或延迟加载,那么当语言尝试序列化对象时,它也将尝试延迟加载属性,到那时上下文可能已被释放。错误中的警报将抛出错误。@BoredBlazer:如何禁用延迟加载属性和代理创建?在
GetEmployeeSummaryCurrent
SO上的打字错误,还是在原始代码中?
[System.Web.Script.Services.ScriptService]
    public class CurrentHistoryfunctions : System.Web.Services.WebService
    {



        [WebMethod]
       [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static List<RefEmployee> GetEmployeeSummaryCurrent(string empNo)
        {
            EmployeeRepository empsumcurr = new EmployeeRepository();
            eturn empsumcurr.EmployeeSummaryCurrent(empNo);
        }
}
$.ajax({
                type: "post",
                contentType: "application/json;charset=utf-8",
                dataType: "json",
                url: "Services/CurrentHistoryfunctions.asmx/GetEmployeeSummaryCurrent",
                data: JSON.stringify(emp),
                success: function (resp) {
                    var acc = []
                    if (resp.d[0] != null) {
                        $.each(resp.d[0], function (index, value) {
                            acc.push(index + ': ' + value);
                        });

                        $('#CurInfo').empty();
                        $('#CurInfo').append('<p><b>' + 'Employee Name: ' + '</b>' + resp.d[0].EMPName + '</p>' + '<p><b>' + 'Hire Date: ' + '</b>' + resp.d[0].EMPHRDate + '</p>' + '<p><b>' + 'Employee Status: ' + '</b>' + resp.d[0].EMPSTUS + '</p>' + '<p><b>' + 'Address: ' + '</b>' + resp.d[0].EMPADDR1 + resp.d[0].EMPADDR2 + '</p>' + '<p><b>' + 'City: ' + '</b>' + resp.d[0].EMPCity + '</p>' + '<p><b>' + 'State: ' + '</b>' + resp.d[0].EMPState + '</p>' + '<p><b>' + 'Zip: ' + '</b>' + resp.d[0].EMPZip + '</p>' + '<p><b>' + 'AU: ' + '</b>' + resp.d[0].EMPAUCode + '</p>' + '<p><b>' + 'Position: ' + '</b>' + resp.d[0].Position + '</p>' + '<p><b>' + 'Marital Status: ' + '</b>' + resp.d[0].Marital_Status + '</p>' + '<p><b>' + 'Gender: ' + '</b>' + resp.d[0].Gender + '</p>');
                    }
                    else {

                        $('#CurInfo').empty();
                        $('#CurInfo').append('<p><b>' + 'No Current Data of Employee is Found' + '</b></p>');

                    }


                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert('TextStatus:' + textStatus + ' errorThrown: ' + errorThrown);
                }
            })