我在VS2015中创建了一个项目,我的架构是这样的,使用ASP.NET空网站我添加了几个html,jquery,highcharts等(没有使用任何aspx页面)和使用webApi nuget包的相同解决方案我添加控制器和添加类库(业务层,数据层)到同一个project.so从html页面使用AGAX我调用webapi(exsits在同一个解决方案)和控制器方法将联系数据层来获取数据,我会得到json和我将绑定到HTML,我使用基于令牌的身份验证,一切正常。
现在问题是如何在IIS中提供此解决方案,最初我做了什么,首先我发布了我的解决方案API部分并托管在IIS(8081端口)并能够调用webapi。 然后我将我的HTML(UI)部分添加到IIS(8080端口)并且能够浏览页面,但是在调用WEB API时会导致HTML CROSS问题,因为WEB API处于不同的域中,因此WEBAPI中的更改很少我是能够解决HTML CROSS问题但仍然存在更多挑战,
对于这个有什么最好的解决方案,我是一名中级开发人员,直到现在我还没有做任何适当的部署。我们可以用一个多米安装一切吗? 解决方案参考:http://www.codeproject.com/Articles/815916/Create-an-ASP-NET-Web-Forms-Application-using-Boot
答案 0 :(得分:0)
将以下内容添加到api项目的webconfig中
<?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。所以它看起来像一个整洁的SPA。
答案 1 :(得分:0)
避免CORS问题的最佳方法是首先发布您的WEB API,并在IIS中添加该应用程序的新应用程序添加您的HTML网站,因为两者都在IIS中的同一端口,我们可以避免使用CORS。