我正在使用Silverlight 5的WCF RIA,我使用LinqToSqlDomainService。
我有一个类似的这个
[EnableClientAccess()]
public class UsersAndGroups : LinqToSqlDomainService<DataBaseDataContext> {
protected override DataBaseDataContext CreateDataContext() {
return DataBaseConnection.GetNewDataBaseContext();
}
public tblUsersAndGroup Web_CanLogin(string userName, string password) {
...
}
//Will call without error
[Invoke]
public List<spSelectVwUsersAndGroupsResult> Web_SelectView(
BLL.tblUsersAndGroup logedInUser)
{
...
}
}
当我在这个课程中调用方法时,每件事情都可以。
我有另一个班级:
[EnableClientAccess()]
public class Privileges : MyLinqToSqlDomainService<DataBaseDataContext> {
protected override DataBaseDataContext CreateDataContext() {
return DataBaseConnection.GetNewDataBaseContext();
}
//Will not call and get error!
[Invoke]
public List<spSelectVwUsersAndGroupsResult> Web_SelectView(
BLL.tblUsersAndGroup logedInUser)
{
...
}
//Will call without error!
[Invoke]
public List<spSelectVwUsersAndGroupsResult> Web_SelectViewWithNoParam() {
...
}
}
当我在之前的calss中创建与Web_SelectView完全相同的方法时,当我调用它时,我得到“远程服务器返回错误:NotFound”。错误。
当我删除参数时,它会起作用,并且不会向我显示错误,方法会调用。
我看到有关此错误的链接:
我在浏览器的网络选项卡中看到开发者工具,我看到调用此方法时会调用但返回未找到,结果为500。
此外,我将这些代码放在我的网络配置中,但我没有在事件日志中看到任何有意义的错误
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true" >
<listeners>
<add name="xml"/>
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml"/>
</listeners>
</source>
<source name="myUserTraceSource"
switchValue="Information, ActivityTracing">
<listeners>
<add name="xml"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add name="xml"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="C:\logs\Traces.svclog" />
</sharedListeners>
</system.diagnostics>
<system.serviceModel>
<diagnostics wmiProviderEnabled="true">
<messageLogging logEntireMessage="true"
logMalformedMessages="true"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="true"
maxMessagesToLog="3000" />
</diagnostics>
</system.serviceModel>
更新
我编辑我的web config switchValue =“Information,ActivityTracing”to switchValue =“All”,现在我可以看到错误:
WebHost无法处理请求。发件人信息: System.ServiceModel.ServiceHostingEnvironment + HostingManager / 12036987 异常:System.ServiceModel.ServiceActivationException:服务 由于异常,无法激活'/Services/BLL-Privileges.svc' 在编译期间。异常消息是:操作命名 'Web_GetPrivileges'不符合所需的签名。 参数类型必须是实体或复杂类型,集合 实体或复杂类型,或预定义的可序列化之一 类型.. ---&gt; System.InvalidOperationException:名为的操作 'Web_GetPrivileges'不符合所需的签名。 参数类型必须是实体或复杂类型,集合 实体或复杂类型,或预定义的可序列化之一 类型。
但是为什么“名为'Web_GetPrivileges'的操作不符合所需的签名。”什么时候在上课时工作!!!
第二次编辑:
当我删除[Invoke]属性时,没有错误事件会注册... 但我再次找不到!当我在浏览器开发者工具中看到没有代码会回复给我,没有200,没有500,或任何其他....
由于