Это странный.
Я использую Amazon S3 для хранения файлов в моем приложении Silverlight 4. Из-за ограничений файлов, связанных с REST API и S3 (файлы должны быть <1 МБ для REST), я пытаюсь заставить вызовы SOAP работать. </p>
Я следовал учебнику, написанному Тимом здесь http://timheuer.com/blog/archive/2008/07/05/access-amazon-s3-services-with-silverlight-2.aspx
минус детали о CNAME с тех пор, как он обновился и сказал, что это было плохо для безопасности,
но продолжали возникать проблемы с подключением, пока он просто волшебным образом не начал работать этим утром, и я смог получить список всех своих ведер! Поэтому я подумал, что это исправлено, пока несколько минут назад я не перезапустил Chrome, а затем снова попробовал приложение, и оно больше не подключалось к конечной точке SOAP, а VS выдал мне междоменную ошибку.
Однако я подумал обо всем, что я сделал ранее, чтобы заставить его работать, и единственное, о чем я мог подумать, это то, что у меня была открыта вкладка с файлом clientaccesspolicy.xml, открытым через bucket.s3.amazonaws.com /clientaccesspolicy.xml. Поэтому я попытался открыть ее снова в новой вкладке, открыл свое приложение в другой, и затем SOAP-вызовы начали работать! Работает только когда файл открыт во вкладке !!! Я тоже пробовал это в Firefox и IE, тоже самое!
У меня есть Fiddler, и он, кажется, на самом деле никогда не звонит в clientaccesspolicy.xml, если только он не спрятан внутри одного из вызовов SSL, о котором потом невозможно узнать, но нет прямых вызовов. s3.amazonaws.com/clientaccesspolicy.xml проходит через Fiddler, как и некоторые другие вопросы, на которые здесь сказано, что будет.
Очень признателен, ребята, спасибо.
Edit:
Так как кто-то, вероятно, попросит об этом, это файл clientaccesspolicy.xml, который я сейчас использую. Я знаю, что это не самое безопасное, просто пытаюсь заставить это работать до того, как я снимаю шаблоны
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-methods="*" http-request-headers="*">
<domain uri="http://*"/>
<domain uri="https://*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
Редактировать 2:
Похоже, это проблема HTTPS. Если я заставлю мою конечную точку иметь http, а не https, требуемый Amazon, Fiddle покажет SL доступ к файлу clientaccesspolicy.xml.