我最近参与了一个使用SAPUI5的项目。到目前为止,我的网络背景主要是开发ASP MVC应用程序,但我从来没有真正费心去深入了解ASP应用程序是如何在幕后设置的。
最近,我发现需要客户端(JavaScript)代码来查询本地IIS以获取各种与系统相关的信息,例如Windows用户ID等。所以,我认为Web服务是自然的方法
但是,由于网站未设置为处理ASP Web服务,因此我无法开箱即用。只需在网站上添加一个Web服务就会自动创建一个“App_Code”文件夹来托管C#实现文件,但是当客户端调用服务时它只会返回404,所以我认为路由不起作用。
所以,我的问题是:现有网站开始接受和路由传入的网络服务电话需要做些什么?是否可以将此功能添加到现有网站,或者我是否需要重新开始并创建ASP MVC(或WebApi)应用程序?
答案 0 :(得分:0)
你的陈述......
只需将Web服务添加到网站即可自动创建 " App_Code文件"用于托管C#实现文件的文件夹
...表示您正在使用"网站"而不是"网络应用程序"。
因此,我很惊讶您为服务文件获取了404(除非您尝试直接在您的网址中引用App_Code文件夹中的类文件 - 赢得了&# 39;工作)。
虽然可以将WebApi项目与网站混合(例如将System.Web.Routing
添加到您的站点并在Application_Start
中的Global.asax中创建路由),但我会谨慎对待这种方法它可以引入自己的一系列挑战。
假设您的网站是ASP.NET 3.5或更高版本,旧的ASMX Web服务方法非常实用。只需确保在您的类之前添加(或取消注释)[System.Web.Script.Services.ScriptService]
指令(它应该在您创建ASMX文件时自动添加为注释)。然后,您的AJAX URL将是Web服务文件的名称,后跟您使用[WebMethod]
声明的任何函数的名称(例如http://MySite/WebService.asmx/MyFunction
)。
对ASMX和JSON进行一些搜索,以查看从服务传递和返回数据(许多选项)。