我在WCF服务中使用LINQ。我试图在网格中列出我的所有电影,但我的查询无法正常工作。 谁知道为什么?
这是查询:
public List<MovieInfo> GetAllMovies()
{
var queryResult = (from x in db.MovieInfos
select x);
return queryResult.ToList();
}
这是webconfig:
<configuration>
<connectionStrings>
<add
name="dmaa0913Sem3_1ConnectionString"
connectionString="Data Source=dbname;Initial Catalog=dataname;Persist Security Info=True;User ID=username;Password=password"
providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5"/>
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the values below to false before deployment -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<!--
To browse web app root directory during debugging, set the value below to true.
Set to false before deployment to avoid disclosing web app folder information.
-->
<directoryBrowse enabled="true"/>
</system.webServer>
</configuration>
这是我得到的错误:
无法调用该服务。可能的原因:服务处于脱机状态 或无法进入;客户端配置与 代理;现有代理无效。请参阅堆栈跟踪 更多详情。您可以尝试通过启动新代理进行恢复,然后进行恢复 默认配置或刷新服务。
该服务在线,因为我使用的是WCF测试客户端。
答案 0 :(得分:0)
我已经解决了这个问题。我用来从数据库中提取数据的查询我称之为lazyloading。如果需要提取的数据很复杂,WCF就无法使用这种查询。它是关于WCF服务如何序列化服务的。所以我做的工作就是进入Linq datacontex并设置。序列化模式为单向。这对我有用。