[英]Need Help with ASP.NET (3.5) ScriptManager to call WCF JSON Data via AJAX
我正在嘗試使ASP.NET(框架3.5),AJAX和JSON正常工作。 我有兩個問題。 首先是,當我按ASP.NET的要求添加以下標記時:
[AspNetCompatibilityRequirements(RequirementsMode =
AspNetCompatibilityRequirementsMode.Allowed)]
我發現我不能將其添加到接口聲明上方,只能添加一個類。 我希望此代碼成為接口。 有人可以告訴我我做錯了嗎? 錯誤如下:
屬性AspNetCompatibilityRequirements在此聲明類型上無效。 它僅對“類”聲明有效。
[ServiceContract(Namespace = "API.Trade")]
[AspNetCompatibilityRequirements(RequirementsMode =
AspNetCompatibilityRequirementsMode.Allowed)]
public interface ITradeService
{
[OperationContract(Name = "GetAllCategories")]
string GetCategories(string itemtype, string keywordstring);
[OperationContract(Name = "GetCategoryByNodeLevel")]
string GetCategories(int NodeLevel);
[OperationContract]
int GetTrades(string KeywordString, string TradeType);
}
第二個問題是在ASPX ScriptManager標記中:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="?" />
</Services>
</asp:ScriptManager>
我注意到Path =屬性應該指向一個.SVC文件。 到目前為止,我已經成功地使用了WCF類庫來完成我所需要的。 類庫具有Trade.cs,TradeService.cs和ITradeService.cs文件,我可以對其進行編譯,然后將其作為Web項目中的Web服務引用。
那么,“ Path =“應該指向什么? 或者,我需要添加什么?
我正在學習中,感謝您的耐心配合。 提前致謝。
關於第一個問題。 該屬性被定義為僅適用於類,因此您不能在其他任何東西上聲明它。
該路徑應指向您的服務正在偵聽的端點(例如,/ services / myserivce)。
該路徑應該是HTTP服務的服務端點: http://host.example.com/tradeservice.svc/method
: http://host.example.com/tradeservice.svc/method
。
您只能將屬性應用於接口(類)的實現,而不能應用於接口本身。
至於第二個答案。 我認為路徑需要指向實際的Web服務終結點(.svc或舊的終結點。很抱歉,我忘了頂一下)。
您可以做的是創建一個WebService,TradeService.svc,並實現ITradeService接口。 作為服務上的私有變量,創建一個TradeService實例,並將其用作代理...就像這樣
private TradeService _proxy;
public string MyMethod(){
_proxy.MyMethod();
}
有道理。
<system.serviceModel> <serviceHostingEnvironment ..> </serviceHostingEnvironment> </system.serviceModel>
參考: http : //msdn.microsoft.com/zh-cn/library/system.servicemodel.activation.aspnetcompatibilityrequirements屬性.requirementsmode(v = vs.110).aspx
<%@ ServiceHost Language="C#" Debug="true" Service="TradeService" Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory" %>
請注意, WebScriptServiceHostFactory將自動將ASP.NET Ajax端點添加到您的服務中。 最后,將您的“路徑”屬性指向這個新創建的“ TradeService.svc”。
您可以通過訪問http://localhost.me/TradeService.svc來測試您的服務
可以在http://localhost.me/TradeService.svc/jsdebug中測試Ajax支持
參考: http : //berniecook.wordpress.com/2012/01/08/consumption-a-wcf-service-with-jquery-or-scriptmanager/
源代碼: https ://docs.google.com/open ? id = 0Bz2usIBCcor0NDQxZDc2ODYtNTUzMi00OTRlLTlhOGMtMGI4Y2RhNGIzYWNj
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.