В течение нескольких месяцев я работал над созданием сайта для клиентов, используя ASP.NET MVC с C #, SQL Server 2005, ADO.NET Entity Framework, JQuery и некоторые веб-API ESRI и базы геоданных. Тестовый сервер работает под управлением IIS6 на Windows Server 2003. За это время я видел некоторые странные вещи, которые вызвали много переделок:
- Файлы JavaScript на серверах клиента не распознают нормальный относительный путь к сценариям или URL-адресам: вместо настройки jqGrid с URL-адресом «/Reports.mvc/GridData» я должен инициализировать его как <% = ResolveUrl ( "~ / Reports.mvc / GridData")%> в представлении или запишите путь приложения в теге главной страницы:
// Declare a variable to pass to jQuery functions that don't seem to
// handle URLs below the top-level pages on MVC in IIS6.
var _applicationPath = new String('');
// Reset the variable after jQuery document loaded event to make sure
// every jQuery library and plugin sees the value.
jQuery(document).ready(function() {
_applicationPath = new String('');
});
- Я проверил формы и функции, которые публикуют новые данные в базу данных и те, которые редактируют данные. На двух машинах разработки и на сервере я могу показать, что все работает. Тем не менее, каждый раз, когда они тестируют, клиент возвращается и говорит, что это поле или это поле не сохранено, или «показывает смешно».
На данный момент учетная запись пользователя используется только для входа в Интернет. Мой код структуры сущностей находится в DLL-библиотеке данных и работает с базой данных посредством единого входа пользователя в приложение. Так что не должно быть никаких проблем с разрешениями или безопасностью.
Код не меняется, когда кто-то входит в систему, представления не меняются, и база данных даже не знает, кто вошел на веб-сайт. Поэтому мне приходилось возвращаться к коду снова и снова и просто пытаться программировать еще более оборонительно. Но недавно я дошел до того, что больше нечего делать.
Вчера заказчик сказал мне, что сервер, который я использовал в своей сети, является виртуальным сервером. Это в академической среде, а сервер находится в другом здании, где-то под контролем другого отдела.
Когда я впервые работал на этом тестовом сервере, мне удалось создать сайт ASP.NET, но большинство элементов управления данными не позволяли загружать страницы, а другие компоненты в ASP.NET не работали в системе разработки. Вот почему я перешел на ASP.NET MVC.
Мы перешли на физический тестовый сервер, с которым я раньше не работал. У кого-нибудь были какие-то изворотливые впечатления при работе с виртуальными серверами с ASP.NET или другими вещами?