我目前正在学习WCF,因为他们提供的一些概念和功能看起来很有趣,而且在我正在进行的项目中也很有用。
到目前为止,我一直在关注一些非常简单的指南,以便了解它但是在创建了我的第一个主机服务后,我尝试从SQL数据库中检索一些数据并收到以下错误后,有点失败了使用LINQ to SQL时:
Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
我已经浏览了一下并看到了一些如何解决这个问题的建议,但似乎非适用,因为我正在创建一个纯粹用于测试的简单WCF服务库。
代码在以下行中跳转:
me = aDb.Messages.ToList();
项目本身保存在远程驱动器上,但是当我运行调试是在本地运行时,数据库是远程再次定位的测试服务器。所有SQL凭据都是正确的,因为连接测试成功,我已经检查了连接字符串。最后,该服务作为basicHttp运行下面你可以看到我的所有代码,所以如果你对如何阻止错误有任何想法,那将不胜感激。
namespace AnnouncementServiceLibrary
{
[ServiceContract]
public interface IConnect
{
[OperationContract]
List<Mess> ConnectUser(string userId);
}
}
namespace AnnouncementServiceLibrary
{
public class AnnounceService : IAnnounceService
{
#region IConnect Members
public List<Mess> ConnectUser(string userId)
{
List<Mess> mess = new List<Mess>();
List<Message> me;
List<MessageLink> messLink;
AnnouncementDBDataContext aDb = new AnnouncementDBDataContext();
me = aDb.Messages.ToList();
messLink = aDb.MessageLinks.ToList();
var result = (from a in messLink
join b in me
on a.UniqueID equals b.UniqueID
where a.UserID == userId
select new { b.UniqueID, b.Author, b.Title, b.Body, b.Priority, a.Read, b.TimeRecieved }).
DefaultIfEmpty();
foreach (var a in result)
{
mess.Add(new Mess(a.UniqueID, a.Author, a.Title, a.Body, a.Priority, (bool)a.Read, a.TimeRecieved));
}
return mess;
}
#endregion
}
}
答案 0 :(得分:1)
这可能都与您的应用程序正在从网络共享构建的事实联系在一起。看看这个:http://blogs.msdn.com/shawnfa/archive/2003/06/20/57023.aspx