Вопрос по c#, asp.net – System.Web.HttpException: это неверный запрос ресурса скрипта

9

Я получаю эту ошибку, когда отправляю наш веб-сайт на производственный сервер наших клиентов, однако страница прекрасно работает на их серверах dev / test. В чем причина этой ошибки (учитывая, что я сам не пользуюсь никакими веб-ресурсами, хотя использую набор инструментов asp.net ajax).

какая у вас ссылка на сайт? будет читать какое сообщение ты получаешь? Muhammad Akhtar
Я думаю, что сервер удаляет параметры строки запроса так эффективно, что файлы .axd запрашиваются без необходимых данных (что, в свою очередь, генерирует 404). Я думаю, это так как мои веб-сервисы (.asmx) тоже не работают, они ведут себя так же, как и если вы не передаете какие-либо параметры qs. januszstabik
даже если я получаю ту же ошибку, и мое наблюдение состоит в том, что это сделано каким-то спамером, они автоматически выполняют запрос с другим IP-адресом, любая идея, как я могу остановить это? Jordon Willis
Да, IIS работает нормально, к сожалению, я не могу дать вам ссылку. januszstabik

Ваш Ответ

5   ответов
1

ndeed, вы используете несколько серверов, попробуйте следующее: Добавьте в ваш web.config:

<machineKey  
validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7
               AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"           
decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
validation="SHA1"
decryption="AES"
/>

Но сгенерируйте validationKey и decryptionKey самостоятельно, используя примеры кода, найденные здесь: http://msdn.microsoft.com/en-us/library/ms998288.aspx Приведенная выше ссылка также объясняет больше об этом решении, поэтому проверьте его, ищитеWeb Farm Deployment Considerations на этой странице

11

е событий сервера будет один (система или приложение, не можете вспомнить какие)?

Существуют различные части ASP.NET, которые используют ресурсы сценариев, и по крайней мере две слегка неясные причины их сбоев с такой ошибкой, о которой я могу думать.

believe it or not, if your dlls have embedded resources in them, and they are dated in the future this will happen (if you ever compile dlls in the UK and then immediately deploy them to US web servers you'll be well aware of this issue!). I can't remember the event log error this shows, but would know if I saw it - and it is not immediately obvious. if you have a load balancer routing requests between multiple servers without being "sticky", and your servers have different machine keys, then the request will fail because the encrypted querystring identifying the resource will not be decryptable on another server. This will cause a stack trace that includes various crypto types in it.

Существует множество других причин (например, неверный uris или повреждение строк запросов, как упоминалось выше), но здесь поможет полное отслеживание стека.

Можете ли вы сказать мне, где хранится ключ компьютера, и есть ли проблема с наличием одного и того же ключа на всех серверах фермы?
Нашел то, что мне было нужно по этой ссылке:msdn.microsoft.com/en-us/library/ff649308.aspx, в основном значения хранятся на уровне машины в web.config.comments
Я получаюsame error This is an invalid script resource request в webFarm с F5 LoadBalancing есть 3 сервера IIS сsame machineKey `& lt; machineKey validationKey = & quot; 1 ... F & quot; decryptionKey = & Quot; ... & Quot; Проверка = & Quot; SHA1 & Quot; compatibilityMode = & Quot; Framework20SP1 & Quot; / & GT; `
Балансировка нагрузки с помощью машинного ключа исправила мою проблему. Все остальное работало из-за состояния сеанса SQL.
Пуля 1 !!!! DLL новее системного времени! Я не верю в это !!! спасибо большое!
2

действительно влияет на пользователей. Мы привыкли получать жалобы на страницы, которые не загружаются должным образом. После попытки многих вещей, таких как добавлениеDOCTYPE ошибка не исчезла полностью. Затем мы попытались сохранить всеVIEWSTATEв сессии. Viol & # xE0; нет больше ошибок. Если ваше приложение имеет раздутое состояние просмотра, подобное нашему, вы увидите эту ошибку в журналах. Часто.

Я храню ViewState в объекте словаря, с отметкой времени и именем страницы в качестве ключа. Ключ переходит на веб-страницу, а KVP остается в памяти сервера. и истекает ViewState через определенное время. Это временное решение, пока я не обработаю свои страницы, чтобы иметь как можно меньше ViewState. Ужасно? правда, это работает? Да!
Абсолютно ужасно, состояние представления не сохраняется в сеансе, потому что тогда все данные формы будут храниться в ОЗУ, не говоря уже о том, когда удалять старое состояние представления, вы не хотите, чтобы при одновременном открытии двух веб-форм одна теряла свою ViewState. Итак, когда вы удалите его, в конце сессии?
Работает ли это: пока количество пользователей вашего сайта не превысит несколько тысяч, да, помимо этого, непредсказуемые результаты из-за потери данных /OutOfMemoryException.
Aidiakapi, многие из которых хотят серьезного фронтального веб-сайта и начали использовать веб-формы Asp.Net в начале (а теперь они не могут перейти на MVC или другие более профессиональные платформы), вынуждены были прибегнуть к этому. У меня есть сайт с несколькими ежедневными тысячами пользователей, и мой aspnet_state.exe использует только 200 МБ оперативной памяти. Мой w3wp.exe наоборот использует 800Mb. Общий объем оперативной памяти на моем сервере составляет 32 ГБ, так что это не имеет большого значения. Какую альтернативу вы предлагаете? Вы действительно согласны с Microsoft, что в КАЖДОМ запросе GET и POST вы должны отправлять и получать раздутый Viewstate?
3

который происходил на сервере, о котором администраторы не сказали нам. Остерегайтесь этого

0

которые генерировали эту ошибку. Веб-ресурсы (используемые Ajax Toolkit) используют аргумент строки запроса. Если этот аргумент каким-либо образом изменен (возможно, каким-то злонамеренным пользователем), обработчик HTTP выдаст исключение, что он не сможет найти запрошенный веб-ресурс.

Похожие вопросы