我的应用程序对路由 /{Lang}/cook 进行 AJAX 调用以检索呈现的 Razor 部分。
在通过 Cassini 的 VS2012 中,我能够得到响应;
但是,在 Xamarin 4.2.3(内部版本 60)中,我收到以下错误:加载资源失败:服务器响应状态为 405(NotImplementedException)
http://127.0.0.1:8080/en-us/cook
任何想法为什么该路线在一个 IDE 中有效,但在另一个 IDE 中无效?
我正在使用带有内存缓存的 Service Stack 4.0.12.0。系统正在免费/评估模式下运行。
这是一个使用缓存的服务方法:
公共类ScenarioService内部:Service
[DefaultView("cook")]
public object Get(CookScenario request)
{
var cacheKey = GetCacheKey ("cook", request.Lang);
return base.Request.ToOptimizedResultUsingCache (base.Cache, cacheKey, () => {
CookScenarioResponse response = LoadJson<CookScenarioResponse>(request.Lang, "cook");
return response;
});
}
AppHost.cs内部
public override void Configure(Funq.Container container)
{
//Set JSON web services to return idiomatic JSON camelCase properties
ServiceStack.Text.JsConfig.EmitCamelCaseNames = true;
//Configure User Defined REST Paths
container.Register<ICacheClient>(new MemoryCacheClient());
this.GlobalRequestFilters.Add((request, response, requestDto) =>
{
var localizedReq = requestDto as LocalizedRequest;
if (localizedReq != null)
{
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo(localizedReq.Lang);
}
});
Plugins.Add(new RazorFormat());
}
编辑: 我尝试删除 ToOptimizedResultUsingCaching 并且“/en-us/cook”的服务运行良好;因此,该问题绝对是 Mac OS 10.7.5 上 Xamarin Studio 4.2.3(内部版本 60)上 Service Stack 4.0.12.0 中的 ToOptimizedResultUsingCaching 的问题。
这是单声道版本信息:Mono JIT 编译器版本 3.2.6 ((no/9b58377 Thu Jan 16 17:49:56 EST 2014)
决议 2014 年 3 月 27 日下午 1 点 PST
在我获取 ServiceStack 的预发布版本 (4.0.16) 后,我能够确认内存缓存现在可以在 Xamarin 4.2.3 (build 60) 上针对我的 Macbook pro 笔记本电脑 (OSX 10.7.5) 运行。
再次感谢您的帮助!