我在我的 vb.net 4.0 Web 应用程序(或网站......不确定它是什么 - 有关系吗?)中创建了一个脚本服务,因为我想从客户端调用它。我收到客户端错误,说我的命名空间无法识别(下面代码中的 HomepageService)。我尝试使用在项目中配置为“根命名空间”的名称对其进行限定,但 js 表示它也不识别该命名空间。
该应用程序很旧 - 我们最近将其从 dotnet 2.1 转换为 4.0。
我找到了以下相关主题,因为当我尝试在我的 HomepageServices.asmx.vb 中导入 System.Web.Extensions 时,Visual Studio 说即使我可以看到它,它也无法识别它,在 Studio 中的 References 下列出.
[System.Web.Extensions 程序集无法解析][1]
我尝试发布该主题的后续问题,因为我尝试按照答案中的说明进行操作,但它们没有用(我在项目>属性>应用程序中没有“目标框架”),但有人删除了它,因为我猜我不允许问后续问题?
我咨询了各种网站并按照说明进行操作,这里有一个示例: http ://www.asp.net/ajax/documentation/live/tutorials/ConsumingWebServicesWithAJAXTutorial.aspx
这是位于我网站根文件夹中的 HomepageService.asmx 的内容:
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports System.Collections.Generic
<System.Web.Services.WebService(Namespace:="http://localhost/appname")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
<System.Web.Script.Services.ScriptService()> _
Public Class HomepageService
Inherits System.Web.Services.WebService
Shared _rand As Random = New Random(Environment.TickCount)
<WebMethod()> _
Public Function Test(ByVal s As String) As Integer
Return _rand.Next(0, 120)
End Function
End Class
母版页的片段:
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="Scriptmanager1" runat="server" EnablePageMethods="true">
<Scripts>
<asp:ScriptReference Path="CallWebServiceMethods.js" />
</Scripts>
<Services>
<asp:ServiceReference Path="HomepageService.asmx" />
</Services>
</asp:ScriptManager>
在我的页面顶部,我导入了 js:
PageRequestManager.js:
HomepageService.set_defaultSucceededCallback(
OnLookupComplete);
HomepageService.set_defaultFailedCallback(
OnError);
function OnLookup() {
HomepageService.Test(stb.value);
}
function OnLookupComplete(result, userContext) {
// userContext contains symbol passed into method
var res = document.getElementById("_resultLabel");
res.innerHTML = userContext + " : <b>" + result + "</b>";
}
function OnError(result) {
alert("Error: " + result.get_message());
}
我的 web.config 是一团糟,但我很乐意发布它......