Я работаю над приложением Silverlight, размещенным на IIS 6 (Windows Server 2003), которое взаимодействует с веб-службой на сервере приложений JBoss (JBoss 4.2.2 также на Windows Server 2003). Приложение Silverlight используется только в локальной сети, поэтому к нему обращаются с помощью следующего URL-адреса: http://machinename:88/
Я создал файл crossdomain.xml для сервера JBoss (как того требует Silverlight) в ...\server\default\deploy\jboss-web.deployer\ROOT.war
со следующим текстом:
<?xml version="1.0" ?>
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-access-from domain="machinename"/>
<allow-http-request-headers-from domain="machinename" headers="*"/>
</cross-domain-policy>
Я получаю ошибки от Silverlight, пока не заменю "machinename"
с участием "*"
. Я тоже пробовал "machinename:88"
с теми же результатами, что и без порта. Как вы должны указать домен, если URL-адрес - это просто имя машины и порт?
Ожидается, что домен будет полностью квалифицирован. Поскольку ваше машинное имя не является полностью определенным доменным именем, оно не проходит проверку и не будет работать, если вы не используете что-то вроде machinename.local для доступа к сайту.
Единственное решение в этом сценарии - использовать "*"
. Я предполагаю, что в любом случае это не будет проблемой, потому что вы, вероятно, работаете только в защищенной внутренней сети с таким именем машины.