如何在 IIS 中托管 webAPI /HTML?

How to Host webAPI /HTML in IIS?

我在 VS2015 中创建了一个项目,我的架构是这样的,使用 ASP.NET 空网站我添加了一些 html、jquery、highcharts 等(未使用任何 aspx页面),对于使用 webApi nuget 包的相同解决方案,我使用 AGAX 添加控制器并将 class 库(业务层、数据层)添加到 html 页面中的相同 project.so 我正在调用 webapi(exsits在相同的解决方案中)和控制器方法将联系数据层以获取数据,我将获得 json 并绑定到 HTML 并且我正在使用基于令牌的身份验证,一切正常。

现在的问题是如何在 IIS 中托管此解决方案,最初我所做的是,首先我发布了我的解决方案 API 部分并托管在 IIS(8081 端口)中并能够调用 webapi。 然后我将 HTML(UI) 部分添加到 IIS(8080 端口)并能够浏览页面,但是在调用 WEB API 时会导致 HTML CROSS 问题,因为 WEB API 在不同的域中,所以在 WEBAPI 中几乎没有变化,我能够解决 HTML CROSS 问题,但仍然没有更多的挑战,

那么有什么最好的解决方案吗,我是一名中级开发人员,直到现在我还没有做任何适当的事情 deployments.Can 我们将所有内容都托管在一个域中? 解决方案参考:http://www.codeproject.com/Articles/815916/Create-an-ASP-NET-Web-Forms-Application-using-Boot

将以下内容添加到您的 api 项目的网络配置中

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <system.webServer>
   <httpProtocol>
     <customHeaders>
       <add name="Access-Control-Allow-Origin" value="*" />
     </customHeaders>
   </httpProtocol>
 </system.webServer>
</configuration>

这将允许您的 api 与所有域通信。

为了在单个域中完成所有操作,我希望您将所有 html 文件放入 razor.Then 从那里您可以通过简单的 ajax 控制 html calls.So 它看起来像一个整洁的 SPA。

避免 CORS 问题的最佳方法是首先发布您的 WEB API 并在 IIS 中添加作为该应用程序的新应用程序添加您的 HTML 网站,因为两者在 IIS 中位于同一端口,我们可以避免CORS。