我有一个名为GetJSONResponse(...)
的方法,这里有一个摘录:
var response = new HttpResponseMessage(httpResponseCode)
{
Content = objectToSerialize != null ?
new ObjectContent(objectToSerialize.GetType(), objectToSerialize, new JsonMediaTypeFormatter(), JsonMediaTypeFormatter.DefaultMediaType.MediaType)
: null
};
在调用此方法之前,一切运行良好,然后在输入方法之前得到此错误(也许ASP.NET根据需要编译方法?):
找不到方法:' System.Net.Http.Headers.MediaTypeHeaderValue System.Net.Http.Formatting.JsonMediaTypeFormatter.get_DefaultMediaType()'
最初我认为web.config文件(对于视图)缺少名称空间,我试图添加,但它没有解决任何问题 - 然后我意识到我实际上在调用它通过WebAPI控制器获取' Get'方法(不是视图)。所需的DLL存在(复制到本地是真的),但这似乎仍然失败。很明显,错误意味着无法找到方法,但它编译并启动正常,因为c#文件正确引用了类型而没有问题......任何想法?
答案 0 :(得分:8)
发现问题:我在主web.config文件中有一个重复的依赖引用:
错误的一个:
...
File _dirPath = new File(_sdcardPath + "/CreateFolder");
...
正确的一个:
<dependentAssembly>
<assemblyIdentity name="System.Net.Http"
publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.2.29.0" newVersion="2.2.29.0" />
</dependentAssembly>
正确的一个在列表中更远,所以我没有注意到它是重复的。 ;)
......想一想,这也是API Help Page有问题的原因。由于此问题,<dependentAssembly>
<assemblyIdentity name="System.Net.Http"
publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
无法编译和运行,但它现在可以正常工作。 ;)导致此错误:找不到方法:'System.Net.Http.HttpMethod System.Web.Http.Description.ApiDescription.get_HttpMethod()'。
答案 1 :(得分:0)
我取消了相对于RC版本的NuGet包并安装了新版本它将采用新版本。我认为这解决了问题