将Silverlight发布到IIS6上是件麻烦的事情,不知道为什么MS没有考虑简化 *** 作。
步骤如下:
1)IIS6 本身不支持Silverlight,所有要添加MIME,分别是:
.xaml
.xap
2)如果XAP中使用了Webservice,则需要在编译的时候修改配置文件(不明白为什么在代码中修改无效)
3)如果XAP中想嵌入HTML显示(即类似于iframe),非常遗憾MS不支持,除非安装在客户端。
PS
网站如果应用了Silverlight技术,直接部署到IIS中是无法正常运行的,因为Silverlight应用所对应的三种MIME类型没有在IIS中注册,所以Silverlight相关的文件无法下载到客户端,而Silverlight又是客户端应用,这样网站运行不正常。
Silverlight的发布涉及三种类型的文件:.xap,.xaml,.xbap,这些后缀名对于IIS6和IIS7来说都是新的,他们对应的
MIME类型没有默认被添加到IIS中,所以需要手动进行注册,注册的内容为:
.xap application/x-silverlight-app
.xaml application/xaml+xml
.xbap application/x-ms-xbap
注册MIME类型的方法,打开IIS,在网站或默认网站上右击,选择属性,点击 ‘http头选项卡’找到“MIME类型(M)”按纽,点击进行对MIME类型的新建。添加MIME完成后将网站和对应的应用程序池重启,重新打开网站即恢复正常。
WCF RIA Services 部署问题
我在使用ADO.NET Entity Data Model生成 * .edmx,然后利用Domain Service 生成服务。在Silverlight中调用服务中的方法。以上过程在VS2010中一切正常,当我想将程序部署在IIS6的时候,程序可以跑起来,但是怎么也没办法获得sql server数据。总是提示“远程服务器返回了错误: NotFound。”;
1:跨越xml已经添加在跟目录;
2:系统所使用的dll均已拷贝纸Bin目录下;
3:利用动态svc地址访问http://localhost:8000/wcf/services/sl_WcfRia-web-hwDomainContext.svc无法获得服务页面,在VS2010运行环境范围时可以访问;
各位朋友,可否知道服务器上那里设置出现了问题,到时svc服务在IIS上无法访问的原因。等待大家的帮助,谢谢!
运行环境情况:
1:开发环境和服务器是一台机器(系统:windows xp;数据库:2005 sql Server;IIS:5.1)
2:Web.Config 文件如下
<?xml version="1.0" enCoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application,please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<customErrors mode="On"/>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="DomainServiceModule" preCondition="managedHandler" type="System.ServiceModel.domainservices.Hosting.DomainServicehttpModule,System.ServiceModel.domainservices.Hosting,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35" />
</modules>
<valIDation valIDateIntegratedModeConfiguration="false" />
</system.webServer>
<system.web>
<httpModules>
<add name="DomainServiceModule" type="System.ServiceModel.domainservices.Hosting.DomainServicehttpModule,PublicKeyToken=31bf3856ad364e35" />
</httpModules>
<compilation deBUG="true" targetFramework="4.0"/>
</system.web>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
<bindings>
<basichttpBinding>
<binding name="fooSoap" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<security mode="Transport" />
</binding>
</basichttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior>
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
2:安装frmwork4.0 (2、3、4步应该开发时都应装好的)
3:安装Silverlight_4_Toolkit_April_2010.msi
4:建创网站的虚拟目录
5:从开发机拷备System.ServiceModel.domainservices.Hosting和System.ServiceModel.domainservices.Server到生产机的C:\windows\Microsoft.NET\assembly\GAC_MSIL这个目录
6:拷备clIEntaccesspolicy.xml文件到wwwroot目录
7:从开发机拷备拷备System.ServiceModel.domainservices.Hosting.OData和System.ServiceModel.domainservices.EntityFramework到生产机 C:\windows\Microsoft.NET\assembly\GAC_MSIL这个目录
8:配置IIS
(1):wev服务扩展->允许asp.netv4.0
(2):网站属性->文档->添加默认文档(如:Investoday.Yankee.ThirdPartyTestPage.aspx)
(3):网站属性->目录安全性->把身份验证只设置成启用匿名方部,去掉集成windows身份验证
(4):网站属性->Asp.net->选择Version版本为4.0
(5):网站属性->http头->点击MIME类型->添加.xaml:application/xaml+xml和.xap:application/x-silverlight-app的映射
(6):重启IIS->运行命令:IISreset
经过上述步聚,部署就可以成功( *** 作系统:windows 2003 sp2,windowsxp 均可)
总结以上是内存溢出为你收集整理的Silverlight发布到IIS上全部内容,希望文章能够帮你解决Silverlight发布到IIS上所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)