【问题标题】:Minimum setup for web services in IIS?IIS 中 Web 服务的最低设置?
【发布时间】:2015-12-23 06:02:17
【问题描述】:

我最近参与了一个使用 SAPUI5 的项目。到目前为止,我的网络背景主要是开发 ASP MVC 应用程序,但我从来没有真正费心去深入了解 ASP 应用程序是如何在幕后设置的。

最近,我看到需要客户端 (JavaScript) 代码来查询本地 IIS 以获取各种与系统相关的信息,例如 Windows 用户 ID 等。所以,我认为 Web 服务将是自然的接近。

但是,由于该网站未设置为处理 ASP Web 服务,因此我无法开箱即用。只需向网站添加 Web 服务,就会自动创建一个“App_Code”文件夹来托管 C# 实现文件,但是当客户端调用服务时,它只会返回 404,所以我认为路由不起作用。

所以,我的问题是:我需要做什么才能让现有网站开始接受和路由传入的 Web 服务调用?是否可以将此功能添加到现有网站,或者我需要重新开始并创建一个 ASP MVC(或 WebApi)应用程序?

【问题讨论】:

  • Web 服务已弃用。使用 WebApi。

标签: jquery asp.net-mvc web-services iis asp.net-web-api


【解决方案1】:

你的声明...

只需向网站添加 Web 服务,就会自动创建一个 “App_Code”文件夹,用于托管 C# 实现文件

...表明您正在使用“网站”而不是“网络应用程序”。

因此,我有点惊讶您收到服务文件的 404(除非您尝试直接在 URL 中引用 App_Code 文件夹中的类文件 - 这将不起作用)。

虽然可以将 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 上进行一些搜索,以了解有关从服务传递和返回数据的信息(很多选项)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    相关资源
    最近更新 更多