Поскольку FoxFire правильно указывает , вы не можете смешивать 32-битный и 64-битный код в одном процессе.
Любое приложение ASP.NET, которое должно взаимодействовать с Office, потребует повышенных уровней доверия.
Существует способ обойти это, используя технику, известную как «песочница».
То, что вы делаете, - это пишите сборку-обертку, которая выполняет ту работу, которую вам требуется выполнить в Excel. Пометьте сборку атрибутом [assembly: AllowPartiallyTrustedCallers]
, подпишите ее и затем разверните в GAC.
Любые классы в этой сборке, которые требуются для взаимодействия с компонентами Office Interop, должны быть обозначены [PermissionSet(SecurityAction.Assert, Unrestricted=true)]
или любым другим требованием.
Это позволит вам снизить уровень доверия на вашем сервере, но при этом использовать компоненты Office.
Это основано на предположении, что у вас есть административный доступ к серверу, чтобы иметь возможность удалить «доверенную» сборку песочницы в GAC.