我的设置: 客户(HTTP:8080)Nginx的(FastCGI的:9000)FastCGI的,单服务器Nginx + FastCGI + Mono WebAPI 2引发ArgumentNullException:值不能为空。参数名:路径
我想举办ASP.NET MVC 4应用,完全用的WebAPI 2个控制器,配置等建成,在Ubuntu使用Mono 4和fastcgi-mono-server4
,但对的WebAPI路由返回400
:
System.ArgumentNullException
Value cannot be null.
Parameter name: path
Description: HTTP 400.Error processing request.
Details: Non-web exception. Exception origin (name of application or object): mscorlib.
Exception stack trace:
at System.IO.DirectoryInfo.CheckPath (System.String path) [0x00006] in <dca3b561b8ad4f9fb10141d81b39ff45>:0
at System.IO.DirectoryInfo..ctor (System.String path, System.Boolean simpleOriginalPath) [0x00006] in <dca3b561b8ad4f9fb10141d81b39ff45>:0
at System.IO.DirectoryInfo..ctor (System.String path) [0x00000] in <dca3b561b8ad4f9fb10141d81b39ff45>:0
at (wrapper remoting-invoke-with-check) System.IO.DirectoryInfo:.ctor (string)
at Mono.WebServer.FastCgi.WorkerRequest.GetFilePath() [0x00035] in <a872d12009ac4a668f0d504d764f1c44>:0
at Mono.WebServer.MonoWorkerRequest.GetFilePathTranslated() [0x00001] in <5b4128956e344d60b82a5fd7012fd8a1>:0
at Mono.WebServer.MonoWorkerRequest.AssertFileAccessible() [0x00010] in <5b4128956e344d60b82a5fd7012fd8a1>:0
at Mono.WebServer.MonoWorkerRequest.ProcessRequest() [0x0000b] in <5b4128956e344d60b82a5fd7012fd8a1>:0
在我的开发机器上,通过xsp4
和通过MonoDevelop“运行”按钮运行正常。还没有试过fastcgi-mono-server4
,但如果你认为这是相关的,我会的。
正如我所说的,上述行为只发生在匹配WebAPI路由的URL上 - 例如, /api/products
,这意味着配置工作,我想它与环境有关。
我已经开始fastcgi-mono-server
如下:MONO_OPTIONS=--trace=E:System.Exception fastcgi-mono-server4 /appconfigdir=/etc/mono/fastcgi /socket=tcp:127.0.0.1:9000
当打的WebAPI的URL它输出这样的:
[0x7f8276459700:] EXCEPTION handling: System.ArgumentNullException: Value cannot be null.
Parameter name: path
我的代码没有做任何IO,只有数据库(但我们还没有应用)。正如我所说的,上述行为只发生在匹配WebAPI路由的URL上 - 例如/api/products
,这意味着配置工作,我想它与环境有关。