2011-05-17 38 views
0

當JavaScript爲特定機器實例化WCF服務時,它會拋出此JavaScript錯誤。但是,WCF服務適用於其他網絡上的其他計算機。我正在考慮一個端口被阻塞,但這是一個預感。如果你有任何想法,請拍攝他們。WCF服務對象爲空 - 在一臺特定的PC上

JavaScript錯誤:

消息: 'LIMS.UI.Web.WCFServices.Accessioning' 爲空或不是對象

JavaScript的崩潰在這條線:

var service = new LIMS.UI.Web.WCFServices.Accessioning.QuickDataEntryService();

這裏是我的代碼片段:

...

PreAccessioningLoad: function(sender) { 

    if (this.Elements.TxtSampleId.value != "") { 

     **var service = new LIMS.UI.Web.WCFServices.Accessioning.QuickDataEntryService();** 
     jQuery(this.Elements.ImageAjaxSpinner).css("visibility", "visible"); 
     service.PreAccessioningLoad(this.Elements.TxtSampleId.value, Function.createDelegate(this, this.PreAccessioningLoadSuccess), Function.createDelegate(this, this.PreAccessioningLoadError)); 
    } 
    return false; //prevent page postback 
}, 
PreAccessioningLoadSuccess: function(quickDataEntryObject) { 

    var val = jQuery(this.Elements.TxtSampleId).val().replace(/^\s\s*/, "").replace(/\s\s*$/, ""); // trim spaces 
    var intRegex = /^\d{1,10}$/; 
    if (!intRegex.test(val)) { 
     jQuery(this.Elements.SampleIdAjaxValidate).html("<span style='color:red'>Sample Id must contain between 1 and 10 digits</span>"); 
     jQuery(this.Elements.ImageAjaxSpinner).css("visibility", "hidden"); 
     jQuery(this.Elements.TxtSampleId).focus(); // triggers unwanted blur event 
     return false; 
    } 
    else { 
     jQuery(this.Elements.SampleIdAjaxValidate).html(""); // clear AJAX validation 
    } 

    if (quickDataEntryObject.Success == true) { 

     // set the hidden field to true so that we know to call the dbo.procPreAccessioningSave stored procedure 
     // this will be checked on a full page postback when they click Save Test and Sample 
     jQuery(this.Elements.HiddenContainsPreAccessioningData).val("true"); 

     this._internalClientId = quickDataEntryObject.ClientId; 
     jQuery(this.Elements.TxtClientId).val(quickDataEntryObject.ClientIdentifyingNumber); 
     jQuery(this.Elements.DDLClientName).val(quickDataEntryObject.ClientIdentifyingNumber); 

     var thisTemp = this; 
     jQuery(thisTemp.Elements.DDLTest).children("option").each(function() { 
      jQuery(this).remove(); 
     }); 

     jQuery.each(quickDataEntryObject.TestPricingOptionsList, function(i) { 
      var key = quickDataEntryObject.TestPricingOptionsList[i].Key 
      var val = quickDataEntryObject.TestPricingOptionsList[i].Value 
      jQuery(thisTemp.Elements.DDLTest).append(jQuery("<option></option>").val(key).text(val)); 
     }); 
     jQuery(this.Elements.DDLTest).val(quickDataEntryObject.TestPricingOptionId); 

     //jQuery(this.Elements.ClientNameLabel).html("<b>Client: </b> [" + quickDataEntryObject.ClientIdentifyingNumber + "] " + quickDataEntryObject.ClientName); 
     //jQuery(this.Elements.TestLabel).html("&nbsp;&nbsp;&nbsp;&nbsp;<b>Test Requested: </b> [" + quickDataEntryObject.TestPricingOptionId + "] " + quickDataEntryObject.TestPricingOptionName); 
     //jQuery(this.Elements.TestLabel).html("<b>Test Requested: </b> " + quickDataEntryObject.TestPricingOptionName); 

     //jQuery(this.Elements.DDLClientName).css("visibility", "hidden"); 
     //jQuery(this.Elements.DDLTest).css("visibility", "hidden"); 
     //jQuery(this.Elements.ClientIdLabelDiv).css("visibility", "hidden"); 
     //jQuery(this.Elements.ClientIdDiv).css("visibility", "hidden"); 
     //jQuery(this.Elements.TestIdDiv).css("visibility", "hidden"); 
     //jQuery(this.Elements.ClientNameLabelDiv).css("visibility", "hidden"); 
     //jQuery(this.Elements.TestLabelDiv).css("visibility", "hidden"); 

     jQuery(this.Elements.LabelPreAccessioningData).html("<b><i>This Sample Id contains Pre-Accessioning Data</i></b>"); 
     jQuery(this.Elements.TxtClientId).attr('readonly', 'true'); 
     jQuery(this.Elements.DDLClientName).attr('disabled', 'disabled'); 

     //jQuery("form:input:disabled[disabled='true']").css("color", "#ff0000"); 

    } 
    else { 

     jQuery(this.Elements.HiddenContainsPreAccessioningData).val("false"); 

     //jQuery(this.Elements.DDLClientName).css("visibility", "hidden"); 
     //jQuery(this.Elements.DDLTest).css("visibility", "hidden"); 

     jQuery(this.Elements.ClientNameLabel).html(""); 
     jQuery(this.Elements.TestLabel).html(""); 

     //jQuery(this.Elements.DDLClientName).css("visibility", "visible"); 
     //jQuery(this.Elements.DDLTest).css("visibility", "visible"); 
     //jQuery(this.Elements.ClientIdLabelDiv).css("visibility", "visible"); 
     //jQuery(this.Elements.ClientIdDiv).css("visibility", "visible"); 
     //jQuery(this.Elements.TestIdDiv).css("visibility", "visible"); 
     //jQuery(this.Elements.ClientNameLabelDiv).css("visibility", "visible"); 
     //jQuery(this.Elements.TestLabelDiv).css("visibility", "visible"); 
     jQuery(this.Elements.LabelPreAccessioningData).html(""); 
     jQuery(this.Elements.TxtClientId).removeAttr('readonly'); 
     jQuery(this.Elements.DDLClientName).removeAttr('disabled'); 

     //var thisTemp = this; 
     //jQuery(thisTemp.Elements.DDLTest).children("option").each(function() { 
     // jQuery(this).remove(); 
     //}); 

     // Omega wants the client and default test to persist 
     //jQuery(this.Elements.TxtClientId).val(""); 
     //jQuery(this.Elements.DDLClientName).val(0); 

     // ideally we should get the default "Test Requested" here... call another AJAX query and select the default test or store the default in the object 
    } 
    //jQuery(this.Elements.TxtLAN).focus(); 

    jQuery(this.Elements.ImageAjaxSpinner).css("visibility", "hidden"); 
    return false; 
}, 
PreAccessioningLoadError: function(sender) { 

    jQuery(this.Elements.ImageAjaxSpinner).css("visibility", "hidden"); 
    alert("error"); // need to develop an error service for error handling and log the error to the log table! 
    return false; 
}, 

...

回答

0

客戶使用HTTPS,而不是http。這很簡單。它與港口無關。當我給他們鏈接來測試* .svc是否工作時,沒有問題,這給了我一個預感。在他們測試了該URL之後,我立即讓他們再次進入並測試工作流程。它確實如此。

我今天將它們轉換爲https。稍後我會發布一些更多的信息,讓我跟隨WCF工作的步驟以及感興趣的證書。

+0

WCF https設置:http://www.codeproject.com/KB/WCF/7stepsWCF.aspx – MacGyver 2011-05-20 17:48:25