2010-02-27 6 views
3

У меня есть приложение .NET, использующее Remoting между Консоль администрирования и серверное приложение.ArgumentNullException при удалении приложения

Во время особенно долгого переадресации вызова я получу сообщение об ошибке, отображаемое ниже.

Я добавил спонсора клиенту, чтобы предотвратить закрытие соединения Remoting, и я проверил, как вызывается метод Renew().

У меня ошибка в googled, но ничего не происходит. Я не совсем уверен, в чем проблема, поэтому любая помощь приветствуется.

Value cannot be null. Parameter name: returnHeaders

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentNullException: Value cannot be null.

Parameter name: returnHeaders

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[ArgumentNullException: Value cannot be null.

Parameter name: returnHeaders]

System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) +7596735

ответ

3

Ну, имея взгляд на Shared Source найдены на syncfusion.com и проверки SecurityPermissions атрибут here, и я могу предположить, что либо BinaryFormatter (вы не сказали, какой?) Не де-сериализации объекта обсуждаемый.

Поскольку вы упомянули, что это, в частности, длинный звонок, может потребоваться время, чтобы завершить удаленный вызов в блоке try/catch и приложить полный стек, чтобы увидеть, где именно он не работает ... еще лучше , если InnerException не является нулевым, включите это .... Или сделайте что-то вроде этого ... Хорошо, это может показаться хакерским ... и может закончиться неудачно ...

На стороне сервера создайте фиктивный метод ... например

 
void FuBar(void){ 
    int foo = 3, bar = 4, baz = 0; 
    baz = foo + bar; 
} 

при вызове долго обкатку, нерест поток в фоновом режиме, чтобы повторно вызвать FuBar, чтобы гарантировать, что удаленный сервер не истечет, и когда вызов завершится, отключите поток ...

Я предполагаю, что через некоторое время удаленный вызов не удастся, несмотря на возобновление спонсора. .

Или это может быть розетка с тайм-аутом? У меня нет идей ...

Надеюсь, это поможет, С уважением, Tom.

Смежные вопросы