Мое приложение Silverlight 4 размещается в веб-приложении ASP.NET MVC 2. Это хорошо работает, когда я просматриваю с Internet Explorer 8. Однако Google Chrome (версия 5) не может найти контроллеры ASP.NET. А именно, следующий контроллер ASP.NET работает и с Chrome и с IE.
//[OutputCache(NoStore = true, Duration = 0, VaryByParam = "None")]
public ContentResult TestMe()
{
ContentResult result = new ContentResult();
XElement response = new XElement("SvrResponse",
new XElement("Data", "my data"));
result.Content = response.ToString();
return result;
}
Если я некомментирую [OutputCache] атрибут затем, он работает с IE, но не с Chrome. Кроме того, я использую пользовательскую привязку модели с контроллерами, поэтому если я пишу следующее:
public ContentResult TestMe(UserContext userContext)
{
...
}
это также работает с IE, но снова не с Chrome, который дает мне сообщение об ошибке, говоря, что ресурс не был найден. Конечно, я настроил IIS 6 для того, чтобы обработать все запросы с помощью aspnet_isapi.dll, и я зарегистрировал пользовательский образцовый редактор связей в Global.asax своего веб-приложения в Application_Start () метод. Кто-то может объяснить меня, какова могла бы быть причина?Спасибо.
Хорошо, я нашел способ решить эту проблему. В моем приложении silverlight я выбрал использование клиентского стека вместо использования HTTP-стека по умолчанию.
WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
WebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp);
Это не дает прямого ответа на ваш вопрос, но я предлагаю вам попробовать Fiddler и посмотреть на фактический запрос, отправляемый браузером. Сравните различия и попытайтесь выяснить, что происходит не так (вы можете использовать вкладку «Конструктор запросов» в Fiddler для eh-hm, fiddle с параметрами).