【发布时间】:2015-06-25 05:29:49
【问题描述】:
让 WebAPI 2 设置工作起来有点糟糕。我正在尝试将其放置在包含多个项目的现有解决方案中。
当前布局是(带有通用名称):
-Server.Project -Services.Project
现在,IIS 正在做托管。 IIS 中有一个名为 Application 的应用程序设置。
所以,现在如果您访问 localhost/Application/service.asmx ,一切都会启动并完成。 global.asax.cs 文件和大部分服务类都在 Services.Project 中,尽管 Server.Project 是软件的入口点。
我想利用 WebAPI 的新东西。
我在 Services.Project 中定义了一个控制器 (TestAPIController),以及一个具有默认映射的配置文件(来自所有示例)。 Register() 函数是从 Application_Start() 调用的。我已经验证它至少被调用了。
如果我去:
localhost/Application/TestAPI/任何东西,它给了我一个 404 错误。
我尝试通过安装包并转到 localhost/Application/rd(也尝试过 /Application/TestAPI/rd)来使用 Route Debugger。都不工作。我得到一个 404。
这让我相信我的某些设置有误,以至于 WebAPI 的东西实际上并没有正确启动和托管。
我也尝试过启动 OWIN,但似乎没有帮助。
为此,我刚刚在我的 web.config 和 Services.Project 中的 Global 类中添加了适当的启动类内容。
我已验证 Owin 的 Configuration() 函数也被调用,但我仍然无法访问我设置的路径。
我认为入口点是 Server.Project,但控制器/路由是在 Services.Project 中定义的,这可能是问题的一部分。
但是,所有的程序集都放在同一个 bin 目录中。我被引导相信这应该允许加载/找到所有内容。
我错过了什么吗?
如果有什么不清楚的地方,抱歉。让我知道,以便我清除它。
谢谢。
编辑:
所以,我有一个不同的路由调试器来安装和合作。
(安装包 RouteDebugger)。
如果我点击我的主 URL:localhost/application
此路由调试器启动并显示没有匹配的路径,但它还显示了我定义但未找到的路由路径。
...所以现在我更加困惑了。他们是如何出现并明显知道但无法联系到的?
【问题讨论】:
-
最令人怀疑的部分是 Route Debugger 包没有做它应该做的事情。我用 nuget 安装它,并尝试点击 localhost/Application/rd,它甚至找不到。那么,我还需要做些什么才能让事情正常旋转吗?
标签: c# asp.net asp.net-web-api