如何解决.NET Framework Web API项目无法访问的问题?
检查IIS Express运行状态
启动项目后,查看右下角系统托盘的IIS Express图标是否存在。右键图标查看站点状态,如果未启动,右键项目→属性→Web,确认勾选“使用IIS Express”,再重启项目。核对端口配置与实际运行端口
虽然项目文件里配置了<IISUrl>https://localhost:44342/</IISUrl>,但IIS Express可能自动切换端口。可以通过IIS Express托盘图标右键点击站点,查看“浏览”里的实际地址;或者打开Visual Studio的“输出”窗口(视图→输出),查找启动日志里的真实访问URL。
如果端口不一致,要么修改vbproj里的<IISUrl>和<DevelopmentServerPort>为可用端口,要么保留<AutoAssignPort>True</AutoAssignPort>让系统自动分配,之后重新加载项目再启动。排查SSL证书问题
因为使用HTTPS,可能存在证书不被信任的情况。先尝试访问http://localhost:53888/api/values(对应项目里的DevelopmentServerPort),如果HTTP能访问但HTTPS不行,打开Visual Studio的工具→选项→项目和解决方案→Web项目,点击“为IIS Express创建开发证书”,之后重启VS和项目。确认路由与控制器配置
检查App_Start下的WebApiConfig.cs,确保默认路由配置正确:public static void Register(HttpConfiguration config) { config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); }同时确认ValuesController继承自ApiController,且包含正常的GET方法:
public class ValuesController : ApiController { public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } }检查防火墙/杀毒软件拦截
暂时关闭本地防火墙或杀毒软件,再尝试访问。如果能访问,就把IIS Express的端口加入防火墙允许列表。清理重建项目
右键项目→清理,然后右键→生成,再重启项目,避免缓存文件导致启动异常。
内容的提问来源于stack exchange,提问作者Alex

