1.问题介绍
最近学习了.net core项目,是一个空的解决方案里面有 asp.net web api 接口项目 和 asp.net web模型视图控制器项目(页面)还有其他项目如模型层。然后是先做接口部分,及调试接口部分,没问题了再做页面部分。并把页面项目设置为启动项目,这时但是访问不到接口项目的数据,是因为跨域了,所以无法直接在VS调试。
2.解决 通过IIS服务
还是把 页面项目设置为启动项目,再设置页面项目如下:不启用ssl
编译整个解决方案,并发布 页面项目 和 发布 接口项目.
然后给整个解决方案配置IIS,然后在这个解决方案所在的应用程序次添加 刚刚发布的两个应用程序。如下图::
并且把他们所在的应用程序池设置托管代码为 无托管,(.net framework 是有托管的,.net core没有)
然后给api应用程序设置http响应表头,这样页面项目程序才能访问接口数据。如下:
添加内容如下:
标头有两个如下:
Access-Control-Allow-Headers
Content-Type
Access-Control-Allow-Origin
*
每次修改了接口项目代码和页面代码都要重新发布,然后需要重新操作上面的步骤,不然可能还是会访问不到接口的数据。
3.为什么要上面的操作?
因为.net core项目的api 和页面是不同的项目所以要配置一下,并在vs中把 manage设为启动项,这样在调试的时候才能调用api,不然调用不到api。