silverlight 连接数据库问题(请大家指点一二)

时间:2022-09-22 21:43:46
大家好,本人是.net程序员 最近自学silverlight 在利用WCF服务连接sql2005的时候出现了问题
下面是本人按照网上的教程做的操作
    1.创建一个SilverLight应用
  2.创建一个使用LINQ的数据源映射对象
  3.创建一个WCF应用
  4.在SilverLight中添加对WCF的引用 (出错的地方)
  5.在SilverLight添加DataGrid数据显示控件
================================================================================================================
添加DataClasses.dbml后在数据库中拖入表 Customer, 然后新建WCF服务,得到文件IService.cs、Service.cs和Service.svc
Service.cs 续承了接口 IService.cs 后 加入代码如下
    public List<Customer> GetAllCustomer()
    {
        DataClassesDataContext db = new DataClassesDataContext();
        var customer = from p in db.Customer
                       select p;
        return customer.ToList();
    }
然后在silverlight引用该服务的时候出错(编译通过了),单独浏览Service.svc
出现这样的提示:无法找到配置绑定扩展“system.serviceModel/bindings/BasicHttpBinding”。请验证此绑定扩展是否已在 system.serviceModel/extensions/bindingExtensions 中正确注册以及是否拼写正确。
不清楚是我程序安装的问题呢还是代码有错误。
另外我的web.config 做出以下修改
<system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service behaviorConfiguration="ServiceBehavior" name="Service">
        <endpoint address="localhost" binding="BasicHttpBinding" contract="IService">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
  </system.serviceModel>
实在网上无法搜索到,请大家指点一下,感激不尽

8 个解决方案

#1


说明下我的环境 xp系统 vs2008中文版 sql2005的数据库(装了Microsoft Expression Blend中文版和Silverlight.2.0)
大家帮个忙,搞了两天了硬是卡在这 网上也搜索不到
应该不是我环境配置的有问题把

#2


可能是没分的缘故 没人答复
还好自己搞定

#3


BasicHttpBinding 改成 basicHttpBinding

#4


多谢,我正好遇到同样的问题。

#5


<endpoint address="localhost" binding="BasicHttpBinding" contract="IService"> 
中的address必须用localhost如果换成vs2008自己动态分配的地址和端口也是不行。

#6


BasicHttpBinding

应该是basicHttpBinding吧

#7


不是说不需要改什么吗。

#8


关于你的问题我先给你回答一下:
首先看到你在WCF使用了接口说明你使用的是普通的WCF,你应该使用“启用了Silverlight的WCF”,好多教科书上都没有提到这一点,华中宇郝刚的书上在介绍使用WCF时提到要修改web.config文件。
我建议使用“启用了Silverlight的WCF”,就在WCF项目选择下面,使用WCF连接数据库应该不存在任何问题,你的例子问题就出在没有使用“启用了Silverlight的WCF”,我的程序都是这样做的,我的环境是:VS2008+VS2008SP1+Silverlight2+WCF。

#1


说明下我的环境 xp系统 vs2008中文版 sql2005的数据库(装了Microsoft Expression Blend中文版和Silverlight.2.0)
大家帮个忙,搞了两天了硬是卡在这 网上也搜索不到
应该不是我环境配置的有问题把

#2


可能是没分的缘故 没人答复
还好自己搞定

#3


BasicHttpBinding 改成 basicHttpBinding

#4


多谢,我正好遇到同样的问题。

#5


<endpoint address="localhost" binding="BasicHttpBinding" contract="IService"> 
中的address必须用localhost如果换成vs2008自己动态分配的地址和端口也是不行。

#6


BasicHttpBinding

应该是basicHttpBinding吧

#7


不是说不需要改什么吗。

#8


关于你的问题我先给你回答一下:
首先看到你在WCF使用了接口说明你使用的是普通的WCF,你应该使用“启用了Silverlight的WCF”,好多教科书上都没有提到这一点,华中宇郝刚的书上在介绍使用WCF时提到要修改web.config文件。
我建议使用“启用了Silverlight的WCF”,就在WCF项目选择下面,使用WCF连接数据库应该不存在任何问题,你的例子问题就出在没有使用“启用了Silverlight的WCF”,我的程序都是这样做的,我的环境是:VS2008+VS2008SP1+Silverlight2+WCF。