小一年没写 ASP.NET MVC 的应用程序了.
今天写了个DEMO,发布到IIS居然访问不到动态的controller.
1. 基本操作流程回顾.
- 使用 asp.net mvc 框架创建了一个网站项目.
- 写入了一些和基本的逻辑.
- 本地在
控制面板
里找到程序和功能
打开并安装iis相关服务.
- 以文件系统的方式发布第一步创建的web网页.
- 在
iis
指定发布完成的web网页文件夹路径. - 在 web 文件夹里创建了一个 index.html 页面.
- 在浏览器里访问这个网站,index.html 页面正常显示.
- 在浏览器里访问 home/index 这个控制器(动态页面),发现出现了 404 的错误!
2. 错误确定--->动态页面 home/index 无法访问.
现在问题已经确定,那就是动态的控制器无法访问.
说白点就是接口无法访问.比如 HomeController 下面的 getJson 接口无法访问.
解决方法.
查看 isapi 中间件是否在iis里注册
- 打开iis服务器.选择第一个节点.在右侧菜单里选中
ISAPI 筛选器
![](https://img.haomeiwen.com/i2701794/82f9b5cdf5f0e641.png)
-
进入到 isapi 控制面板,查看 v4.0 Framework 的两个 api 是否注册进入到了 iis
80D129A9-9620-4816-8B31-7038230B9CC7.png
-
进入到本地的存放这上图中两个 API 的路径中.
C:\Windows\Microsoft.NET\Framework64
![](https://img.haomeiwen.com/i2701794/f71fa6d5b70ce088.png)
- 在上述目录中,打开CMD界面,输入 aspnet_regiis -i 等待安装完成.
![](https://img.haomeiwen.com/i2701794/da0712f0b385e3c5.png)
- 回到iis 的 isapi 筛选选项卡的界面,就可以看到红色方框中的两个 v4.x 的 isapi 程序已经成功注册到了 iis 中.
![](https://img.haomeiwen.com/i2701794/639a748b8182e421.png)
- 网站重新启动,确保正确的设置了默认文档首页(home/index). 然后在进入浏览器测试,一般情况下,问题就可以得以解决.
网友评论