我的笔记本电脑刚刚崩溃了(把水洒在上面了)。我将我的工作代码(2天前的备份)从Windows Server2008笔记本电脑复制到运行Visual Studio2008 SP1的Vista笔记本电脑上。两者都运行.NET 3.5 SP1。
我有一个返回产品信息的web方法调用。
web服务(在托管服务器上运行)中的一些字段如下所示:
public class Product
{
[XmlAttribute("sku")]
public string SKU;
[XmlAttribute("name")]
public string Name;
[XmlAttribute("category")]
public string CategoryName;
[XmlAttribute("categoryKey")]
public string CategoryKey;
public List<ProductSectionInfo> Sections;
public List<MediaItem> MediaItems;
public string Foo = "bar";
}
public class MediaItem
{
[XmlAttribute("type")]
public string Type;
[XmlAttribute("imageKey")]
public string ImageKey;
[XmlAttribute("path")]
public string Path;
[XmlAttribute("thumbnailPath")]
public string ThumbnailPath;
[XmlAttribute("thumbnailImageKey")]
public string ThumbnailImageKey;
[XmlAttribute("selectable")]
public bool Selectable;
}当我运行'GetProduct' web方法时,'Sections'属性会被填充到我的C#客户端(在新笔记本电脑上),但'MediaItems的属性却没有。它只是在监视窗口中显示为null。
所以我在Fiddler中查找,两者都填充在XML中。两者都是列表,在我的代理中定义为标准的[]数组。
你可能已经注意到我在上面添加了一个'Foo‘属性。我在服务器上做了这件事,重新编译并重新创建了web-reference。我能够验证在客户端中确实遇到了'Foo‘属性。所以“MediaItems”不是大写的,或者类似的东西。
我非常确信这台新笔记本电脑上有一些不同于其他笔记本电脑的东西。我实际上并没有写什么新的东西,只是在其他地方做了一些修改。我甚至没有重新创建服务引用代理,直到我注意到一个问题。我的客户机在测试服务器上运行的另一个实例正在正常运行,正在访问相同的服务。
修好的笔记本电脑明天就回来了,但我真的很想把这件事搞清楚。我很迷惑。我以前见过像这样的各种奇怪的事情,但真的看不出这里发生了什么。我能以某种方式调试到代理中吗?
发布于 2009-03-04 23:53:54
我知道这是一种问题,只要我提出一些东西,它就会自己解决--当然是这样的。
我仍然不知道为什么。事实上,我能够添加一个'Foo‘属性,重新生成代理,但它仍然不能工作,这是非常奇怪的。
新列表=新列表{新的MediaItem()})
不过还是很迷惑。这是第一次在这台笔记本电脑上运行这个项目(ASP.NET MVC)。
哦,好了,回去工作吧……
发布于 2009-03-04 23:44:42
我遇到的大部分消息加载不正确的问题通常都是代理和服务之间的区别。通常是某些东西发生了变化/移动,或者甚至xml名称空间发生了变化/问题。
https://stackoverflow.com/questions/612993
复制相似问题