当我尝试将我的Web API发布到服务器时,我收到以下消息
“找不到与请求URI匹配的HTTP资源” “没有找到与名为'test'的控制器匹配的类型。”
一切都在本地机器上运行。只是试着让测试控制器工作,然后继续修复其他控制器,这就是为什么我的web API中有其他注册路由。
http://localhost:4159/api/test/1
http://intranetserver/project/api/test/1
这是控制器
Public Class TestController
Inherits ApiController
Public Function GetValue(ByVal id As Integer) As String
Return "value"
End Function
这是WebApiConfig.vb
Public Class WebApiConfig
Public Shared Sub Register(ByVal config As HttpConfiguration)
config.Routes.MapHttpRoute( _
name:="DefaultApi", _
routeTemplate:="api/{controller}/{id}", _
defaults:=New With {.id = RouteParameter.Optional} _
)
' config.Routes.MapHttpRoute( _
' name:="GetVehiclesByDateRange", _
' routeTemplate:="api/{controller}/{startDate}/{endDate}" _
')
config.Routes.MapHttpRoute( _
name:="GetImportersByDateTimeRange", _
routeTemplate:="api/{controller}/{startDateTime}/{endDateTime}" _
)
config.Routes.MapHttpRoute( _
name:="GetPagedData", _
routeTemplate:="api/{controller}/{pageNumber}/{pageSize}" _
)
End Sub
End Class
这是Global.asax.vb文件中的内容
Sub Application_Start()
AreaRegistration.RegisterAllAreas()
WebApiConfig.Register(GlobalConfiguration.Configuration)
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters)
RouteConfig.RegisterRoutes(RouteTable.Routes)
BundleConfig.RegisterBundles(BundleTable.Bundles)
CorsConfig.RegisterCors(GlobalConfiguration.Configuration)
''NOTE: Remove the Basic Authentication mechanism below to open the service to all calls. And also comment out any attributes on Controllers.
GlobalConfiguration.Configuration.MessageHandlers.Add(New BasicAuthMessageHandler() With {.PrincipalProvider = New DummyPrincipalProvider()})
End Sub
任何想法?
答案 0 :(得分:0)
问题解决了,华友世纪!
对于我自己而言,它与不匹配服务器上的内容的引用有关。
" API使用程序集解析程序扫描程序集并找出控制器类型"因此我不断获取
"未找到与名为' test'。'的控制器匹配的类型。
引自以下帖子
Getting the "no type was found that matches the controller named" error message during Ajax Request
我有一个不同版本的oracle被引用然后在服务器上找到了什么。
因此,您从Web API遇到的消息可能会产生误导。
确保您的.dll引用在生产中与在本地计算机上的引用相同,等等。
希望这可以节省您的时间。