2010-03-15 4 views
0

У меня есть приложение silverlight, которое использовало http для связи с автономными WCF-службами во время разработки. Теперь я получаю услуги через https. Я получаю сообщение об ошибке, которое у меня было в начале проекта:clientaccesspolicy.xml не запрашивается через HTTPS

Произошла ошибка при попытке сделать запрос URI 'https://localhost:8303/service'. Это может быть связано с попыткой доступа к службе в междоменном режиме без надлежащей политики междоменного размещения или политики, непригодной для SOAP-сервисов. Возможно, вам потребуется связаться с владельцем службы, чтобы опубликовать файл политики междоменной политики и обеспечить его отправку HTTP-заголовков, связанных с SOAP. Эта ошибка также может быть вызвана использованием внутренних типов в прокси-сервере веб-службы без использования атрибута InternalsVisibleToAttribute. Для получения дополнительной информации см. Внутреннее исключение.

Файл clientaccesspolicy.xml настроен для доступа к http: // * и https: // *. Единственное различие заключается в использовании http vs https. Прежде чем переключиться на https, я мог видеть (через Fiddler) запрос clientaccesspolicy.xml-файла, но теперь я не могу. Все, что я вижу сейчас, - это два вызова CONNECT localhost: 8303 HTTP/1.0 ... кажется, он попадает в корень сервера, но не запрашивает файл clientaccess. Есть идеи?

ответ

1

Вы используете самозаверяющий сертификат? И если да, добавили ли вы домен сервера (похоже, что ваша служба находится на localhost с учетом сообщения об ошибке) как исключение сертификата в вашем браузере?

Возможно, это не ваша проблема, но у меня есть исключения для безопасности, прежде чем пытаться обращаться к службам WCF через SSL с самозаверяющим сертификатом, когда домен не был явно добавлен как исключение в настройках браузера. Если вы получаете доступ к своему приложению через HTTP, но ваши службы через HTTPS, браузер никогда не предложит вам добавить исключение.

Вот несколько сообщений в блоге, которые могут иметь некоторую помощь в получении SSL работать в Silverlight, если это не ваша проблема:

http://kevindockx.blogspot.com/2009/12/getting-silverlight-to-work-over-ssl.html

http://timheuer.com/blog/archive/2008/10/14/calling-secure-services-with-silverlight-2-ssl-https.aspx

+0

У меня было две проблемы. Первая ссылка, которую вы дали, зафиксировала одну из них (другая в моем ответе). Я использовал сервер dev, поэтому указывал на localhost, а не на имя машины. Я изменил параметры проекта, чтобы опубликовать их в IIS и использовать имя машины при публикации. Благодаря! – Philip

+0

И да, я использую самозаверяющие сертификаты. – Philip

1

В дополнение к ссылке Dan Auclair, в другой предмет был Fiddler. Fiddler был настроен для дешифрования трафика HTTPS и искажал связь. Я отключил дешифрование трафика HTTPS и (в дополнение к предложению Дэна) он сработал.

Смежные вопросы