【问题标题】:The input stream is not a valid binary format. The starting contents (in bytes) are: 53-79-73-74-65-6D-2E-52-75-6E-74-69-6D-65-2E-52-65输入流不是有效的二进制格式。起始内容(以字节为单位)为:53-79-73-74-65-6D-2E-52-75-6E-74-69-6D-65-2E-52-65
【发布时间】:2013-04-24 00:41:58
【问题描述】:

我有一个与 Word 2007 集成的 VSTO Word Addin 项目,当我点击我的 Addin 上的登录按钮时,我执行以下方法:

    private void btnOK_Click(object sender, System.EventArgs e)
    {
        AuditDataAccess auditDataAccess = 
(AuditDataAccess)DataAccessFactory.GetNewInstance(typeof(AuditDataAccess));
    }

这里,DataAccessFactory 是另一个名为 RemoteData 的引用程序集中的类,如下所示:

public class DataAccessFactory
{
    static DataAccessFactory()
        {
            objADDataAccess = new ADDataAccess();
        }
}

这里,ADDataAccess 是与 RemoteData 相同的程序集中的一个类:

namespace RemoteData.Client
{
    public class ADDataAccess : IDataAccess
        {
            RemoteData.Server.ADDataAccess proxy = null;

            internal  ADDataAccess()
            {
                proxy = new RemoteData.Server.ADDataAccess(); // Error Line
            }
         }

public interface IDataAccess
    {
        bool IsActive
        {
            get;
        }
    }

}

Server.ADDataAccessRemoteData 在同一个程序集中:

namespace RemoteData.Server
{
    public class ADDataAccess:DataAccess
    {
        DataAccess.ADDataAccess objDataAccess;


        public ADDataAccess()
        {
            //objDataAccess = new DataAccess.ADDataAccess();
        }
    }
public abstract class DataAccess : MarshalByRefObject
    {
        public bool IsActive
        {
            get { return true; }
        }
    }
}

我已经注释了 new DataAccess.ADDataAccess() 的代码,它正在另一个名为 DataAccess 的引用程序集中创建一个类的新对象,我认为这可能是造成问题的原因,但我仍然收到提到的相同错误在问题标题行注释为Error Line

EDIT:我创建了一个具有相同架构的小项目,它运行良好。这是下载链接:http://www.2shared.com/file/dGXNtsAK/Server.html

请帮忙...

【问题讨论】:

  • 十六进制是“System.Runtime.Re”的开始
  • 解决方案中有另一个项目,它是一个 WebApplication 并在其中具有远程配置,但“RemoteData”程序集是一个类库项目。我没有很好的远程处理知识。

标签: .net c#-4.0 .net-remoting


【解决方案1】:

此问题已解决。问题是在Project.dll.config文件中,有这样一个remoting的配置:

<system.runtime.remoting>
        <application>
            <channels>
                <channel ref="http">
                    <clientProviders>
                        <formatter ref="binary"/>
                    </clientProviders>
                </channel>
            </channels>
            <client url="" displayName="">
                <activated />
            </client>
        </application>
    </system.runtime.remoting>

因为,我们直接实例化了通过其中的 &lt;activated/&gt; 元素公开的类型,而不是通过远程调用获取它们,所以它导致了异常。在web.config 中评论了整个远程配置部分后,它开始工作了。

【讨论】:

    猜你喜欢
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 2012-02-27
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    相关资源
    最近更新 更多