Ошибка сервера 547

Иногда, при работе с уже имеющимися данными (например перенос данных из MS Access) в базе данных Microsoft SQL Server возникает ошибка сервера 547: The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "Key_FK00". The conflict occurred in database "myDatabase", table "dbo.Table", column 'Table_Id'. Причина этому очень проста: при создании отношения (неважно "один к одному" или "один ко многим") в исходном слолбце содержатся данные, которые отсутствуют в ключе таблицы. Обычно это вместо значения NULL имеется значение 0, но могут быть и другие данные.

Ошибка 0x800B0100

Столкнулся с интересной проблемой. При обновлении списка ролей и установленных компонентов на Windows Server 2008 R2 возникает ошибка 0х800B0100 и, как следствие, нельзя поменять их состав.
Решением проблемы является установка последней версии System Update Readiness Tool KB947821
По идее, это обновление распространяется через Центр обновления Windows и предлагается только тем компьютерам, на которых имеются проблемы, устраняемые с его помощью. Но если автоматически это обновление не установилось (например, в организации развернут WSUS сервер), то можно самостоятельно скачать последнюю версию обновления соответствующего языка. Использовать, очень желательно, именно последнюю версию (на сегодня это версия на апрель 2010 года)!
В большинстве случаев это средство автоматически устраняет все проблемы. Но если проблема не была устранена, то можно посмотреть на файл %systemroot%logsCBSCheckSUR.log и найти (а затем и устранить) ошибку вручную. Более того, это средство устраняет еще и множество других проблем.

Изменения в DHCP для Windows Server 2008 R2 и Windows 7

Точно также как и в клиенте Windows 7 были внесены некоторые улучшения по оптимизации получения IP адреса и безопасности, так и в серверных версиях DHCP претерпел некоторые изменения. Правда нужно отметить, что все изменения вполне ожидаемы (о них даже на Платформе в общем говорили).

Итак, непосредственно изменения:
— появилась поддержка MAC адреса сети с механизмом контроля доступа (MAC address based network access control mechanism), включая фильтрацию. При этом администратор DHCP может контролировать выдачу и отказ аренды IP адреса;
— предотвращение регистрации не Windows устройства, если имя устройства уже зарезервировано для другой машины на DNS сервере. Используя эту функцию можно повысить безопасность;
— поддерживает предотвращения исчерпания IP-адресов на уровне области (scope). В особенности это важно для резервирования и ранее приходилось немного извращаться. Эта функция доступна только для IPv4 сети, так как в сетях IPv6 такой проблемы в общем нет;
— поддержка отслеживания изменений в конфигурации DHCP серверов в режиме реального времени, что можно использовать для аудита как безопасности так и проверки внесенных изменений;
— появилась возможность миграции DHCP Server роли, используя Windows Server Migration Tool (WSMT);
— теперь служба DHCP сервера теперь выполняется в контексте учетной записи Network Service вместо Local Service. А так как эта служба имеет очень мало привелегий, то повышается безопасность в целом (об этом в общем говорили очень давно, и вот свершилось);
— автоматическое определение для области (scope) некоторых параметров, таких как DNS сервера, WINS сервера … как для IPv4 так и для IPv6. Администратору в небольшой сети вообще не придется напрягаться, чтобы добавить роль DHCP сервера :);
— изменен в лучшую сторону интерфейс, в особенности добавлено множество икон, с помощью которых значительно ускоряется понимание того, что происходит с сервером. Естественно весь интерфейс переработан для совместимости с фичами Windows Server 2008 R2;
— для аренды теперь можно выбрать IP адрес с оговоркой: можно выбрать несколько адресов;
— для DHCPv6 добавлены опции 15 (User Class) и 32 (Information Refresh Time).
А вывод можно сделать следующий: все изменения направлены на улучшение юзабилити и безопасности. Все изменения по некоторым источникам окончательны и в релизе мало что изменится.

Microsoft Innovation Days. 3 октября. Отчет.

3 октября прошел очередной форум компаний-разработчиков "Innovation Day". Как обычно, поробую освятить прошедшее событие. Сам форум прошел интересно. Первая часть состояла из одной секции (ее назвали пленарной), а вторая часть из двух секций. Одна была адресована непосредственно разработчикам (техническая сессия), вторая управлению (бизнес сессия). Узнал несколько очень интересных вещей, но сначала как обычно о плохом.
Итак, что не понравилось. Да в общем все понравилось. Разве только два момента, первый — это то, что на сессиях немного повторяли пленарную часть. А также обе сессии были в общем интересны обоим категориям присутствующих (так как именно технические детали не показывались, да и не цель это Innovation Days, некоторые моменты были рассказаны при ответах на вопросы) а возможности, в том числе и технические и организационные были интересны всем. Вот если бы убрать повторения в первой части, то вполне можно было бы уложиться в рассмотрение вопросов в одной сессии. Но это на самом деле было не критично, ибо можно было перемещаться между сессиями и само расписание было спланировано грамотно. Про мастерство докладчиков и о подобном не упоминаю, так как выступали в основном специалисты Майкрософт и качество выступлений как обычно на высоте.
Теперь что интересного. Интересного было много, попробую вспомнить основные моменты. Ну во-первых, было сказано об открытии двух новых сайтов. Об этом я уже тут написал. Во-вторых, было рассказано об новой инициативе ISV Royalty Licensing. Отличная инициатива, позволяющая продавать свой софт совместно с необходимыми продуктами Майкрософт в рамках одной лицензии. Например, если Ваше приложение требует для работы полноценный Microsoft SQL Server 2008, то Вы его можете продать вместе со своим ПО, при чем сначала продать, потом заплатить за него Майкрософту по специальной очень неплохой цене. Правда у заказчика будет одно ограничение, купленное ПО Майкрософт в таком виде можно будет использовать только в рамках Вашего приложения и все. Также было подробно рассказано еще об одной инициативе: SLPS. Software Licensing and Protection (SLP) Services позволяет не только защизать свой код на ASP.NET (и это совсем не обфускация, это именно нормальная защита с кодированием) но и предложить клиентам гибкую политику активации. В самой минимальной конфигурации такая защита будет стоить 20$ в месяц плюс 1$ за каждую активацию, что в совокупности дает очень неплохую стоимость по сравнению с другими решениями. Если же Вам нужно защитить не только .NET код, то можно воспользоваться совместным решением компании ООО "Протекшен Технолоджи" (StarForce) и Microsoft. Также у этой компании легче всего купить решение чисто Microsoft.
Естественно было много рассказано для партнеров Майкрософт, в том числе о преимуществах для компаний-разработчиков, многое из рассказанного можно только услышать, и нигде нельзя прочитать. Также было рассказано о проблемах в новых инновациях Майкрософт (что поможет правильно их преодолевать). Были приглашены представители четырех компаний — партнеров Майкрософт, которые тоже рассказали немного интересного. Приглашение компаний на круглый стол становится уже хорошим правилом. В общем это событие требует посещения offline если не каждый раз, то через раз — точно. На этом буду заканчивать, хотя не упомянул о многом (например, о программе Microsoft SaaS Incubation Center — грандиозная, нужная и полезная вещь), да и вообще о переходе части сервисов в WEB облако.
Ну и по результатам мероприятия возникло три предложения для группы ISV компании Майкрософт.

Первое, это попробовать сделать возможным клиенту апгрейдить лицензию на софт поставляемый по ISV Royalty Licensing до нормальной лицензии у обычного реселлера. Эта задача видимо решается сложно технически, но зато станет очень большим преимуществом, снимет часть организационных вопросов и внутриполитических.
Второе касается Windows, которая пока не входит в ISV Royalty Licensing. Можно ее продавать по лицензии, когда под ней можно запускать только продукты Microsoft и самого разработчика. Это даже можно частично реализовать технически. Что позволит снизить цену и продавать действительно програмно-аппаратный комплекс разработчику, частично решит проблемы с возможностью включения в ISV Royalty Licensing — ведь это не полноценная операционная среда, а клиент в случае наличия пункта 1 тоже будет доволен.
Третье, это введение тарифа по программе SLPS с нулевой платой в месяц (только за факт активации, и за факт выдачи нового компилятора для ПО). Это позволит усилить безопасность, так как разработчики на этом тарифе смогут генерировать говий компилятор под каждое ПО, что видимо невозможно для версии Standart, а также большей популяризации, особенно среди начинающих разработчиков (ведь у них неизвестно когда и как и когда ПО начнет нормально продаваться, а платить в никуда хоть и 20$ — совсем не хочется).

Microsoft Office Live Workspace — даже работает!

Не все знают, что Microsoft уже давно запустила службу Microsoft Office Live Workspace. Новость же заключается в том, что она теперь доступна и на русском языке. Вот только первые результаты тестирования не впечатляют. Конечно это пока бетта … но все же. Итак подробнее.
Во-первых, при входе, страница почему-то показывается на английском языке, хотя стартовая страница корректно определяет настройки браузера и отображение происходит на русском. Во-вторых, для тех, кто не знаком с Microsoft Office SharePoint Server, не так просто будет сходу найти как язык переключить (выпадающее меню снизу страницы). В третьих, первый заход на сайт (и у меня сайт на английском) невероятно сильно тормозит и работает крайне медленно. После первого захода и ожидания секунд 30, первая мысль — оно даже работает!
Какие можно сделать выводы. Microsoft Office Live Workspace это пока бесплатная альтернатива Office Live Small Business, которая к тому же недоступна на русском языке. Сама рабочая область имеет ограничения. И если ограничение на доступ максимум 100 пользователей в общем можно спокойно пережить, то ограничение в 500 Мб на сервере и на файл максимум 25Мб — это плохо. Если сравнивать с подобным сервисом от Google, то Microsoft пока сильно отстает в направлении развития бесплатных вэб сервисов. Да и за основу явно взят очень тяжеловесный (хоть и обрубленный в данном применении) SharePoint Server.
Но данный сервис работает! и его можно использовать. Он на самом деле удобен. По всей видимости скоро в сервис добавят контекстную рекламу (тот же Google этого не стал делать) и введут дополнительные платные услуги после выхода из бетты (это в общем нормально).
Ну и для тех кто использует на предприятии SharePoint Server или SharePoint Services, будет очень удобно завести похожую вещь для себя бесплатно. К тому по сравнению с офисным вариантом Microsoft Office Live Workspace больше настроен на конечного пользователя и имеет интересные предустановленные шаблоны рабочих областей.

.NET Architecture Day. 22.09.2008. Отчет.

Сегодня прошло очередное мероприятие в рамках .NET Architecture Day. Точнее это была 2 часть этого мероприятия в виде лабораторной работы на тему: "Знакомство с новыми технологиями платформы обработки данных Microsoft". Были рассмотрены вопросы, теоретическая часть которых рассказывалась на семинаре, но только с практической стороны. Лабораторную работу сегодня проводил Антон Шепитько.
Сначало о грустном. Отдельно стоит отметить, как было организовано мероприятие. На самом мероприятии проблем в общем не возникало, все достаточно отлажено. Разве только компьютеров было на всех маловато, но все разместились. Но вот подготовка к мероприятию …, приглашений на мероприятие было выслано целых два. Первое не содержало ссылки на регистрацию, на следующий день правильно повторили. То, что само мероприятие было запланировано на понедельник тоже ничего хорошего. Можно конечно было подумать, что это специально, чтобы участников было поменьше :), но на самом деле просто компьютерный класс имеет очень плотное расписание, и несмотря на резервирование его заранее, не так все просто. Подтверждений на мероприятие было целых три! Первое не содержало место, где оно будет проводиться. Второе место и время содержало … но было и третье — устное. Был звонок, который сообщил, что мероприятий будет два, в связи с большим колличеством приглашенных. Одно сегодня, затем на следующий день точно такая же лабораторная работа. Как оказалось, вендор подтвердил регистрацию на 51 человека, а в классе всего 18 рабочих мест. В общем, несмотря на отвратительную организацию со стороны вендора, ему можно сказать спасибо — в итоге сможет поучаствовать больше народу.
Теперь о хорошем. Сама лабораторная работа очень полезная и неплохо знакомит с новыми технологиями. Но если Вы их совсем не знаете (например, если слова: "Variable query2 should be a query that executes a 3-table join between the authors, titles, and titleauthor tables. It should return only the columns au_id and title_id as an anonymous type" не побуждают Вас сразу написать код — будет очень сложно. Но даю подсказку. На самом деле на диске в виртуальной машине уже есть готовые примеры, и код можно посмотреть там, нужно лолько поискать. (Правда сразу их запустить не получится, так как нужно выполнять все последовательно, чтобы создать нужные базы данных). Ну и еще один совет: берите с собой жесткий диск или флешку (или ноутбук) со свободным местом 9 Гб — если захотеть, все можно унести домой и поиграться. По идее можно выложить все инструкции к лабораторным работам.
Также никто не мешает лабораторную работу выполнять не по намеченному плану и проверить в тестовой среде, тот код, который Вам пришел в голову во время выполнения работы. Первую часть рекомендую выполнять всем, если внимательно и вдумчиво подойти — прояснит многие моменты.
Ну и как обычно, на сессии вопросов и ответов можно решить свои проблемы. Естественно врядли кто сразу ответит на вопрос, а почему у меня этот код не работает, но вот на вопрос, какую технологию выбрать для решения той или иной задачи, будет рассмотрен со всех сторон.