Сведения о вопросе

ЧОВИД

17:27, 9th August, 2020

Теги

linq-to-sql   hosting   shared    

Linq 2 SQL на общем хосте

Просмотров: 428   Ответов: 1

Недавно я столкнулся с проблемой с linq на общем хосте.
Хост-это общий интеллект, и они поддерживают v3.5 фреймворка. Однако я не уверен, установлен ли у них SP1. Мое подозрение заключается в том, что они не.

У меня есть простая таблица News , которая имеет следующую структуру:

NewsID          uniqueidentifier
Title           nvarchar(250)
Introduction    nvarchar(1000)
Article         ntext
DateEntered     datetime (default getdate())
IsPublic        bit (default true)

Моя цель-отобразить 3 самых последних записи из этой таблицы. Я изначально пошел по методу D&D (я знаю, я знаю) и создал источник данных linq и не смог найти способ ограничить результаты так, как я хотел, поэтому я удалил это и написал следующее:

var dc = new NewsDataContext();
var news = from a in dc.News
           where a.IsPublic == true
           orderby a.DateEntered descending
           select new { a.NewsID, a.Introduction };
lstNews.DataSource = news.Take(3);
lstNews.DataBind();

Это прекрасно работало на моей локальной машине.

Однако, когда я загрузил все на общий хост, я получил следующую ошибку:

.Read_<>f__AnonymousType0`2
(System.Data.Linq.SqlClient.Implementation.ObjectMaterializer`1<System.Data.SqlClient.SqlDataReader>) 
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.MethodAccessException: 
.Read_<>f__AnonymousType0`2
(System.Data.Linq.SqlClient.Implementation.ObjectMaterializer`1<System.Data.SqlClient.SqlDataReader>)

Я попытался найти ошибку в Google, но не встретил успеха. Затем я попытался изменить свой запрос всеми возможными способами, удаляя различные комбинации параметров where/orderby, а также ограничивая мой запрос одним столбцом и даже удаляя команду Take .

Поэтому мой вопрос состоит из 3 частей:

  1. Кто-нибудь еще сталкивался с этим, и если да, есть ли исправление "quick"?
  2. Есть ли способ использовать источник данных для ограничения строк?
  3. Есть ли способ определить, какая версия фреймворка общего хоста не хватает для отправки их по электронной почте напрямую (что я сделал и жду ответа)



  Сведения об ответе

KOMP

08:43, 26th August, 2020

System.MethodAccessException выбрасывается платформой, когда отсутствует assembly, или одна из ссылок имеет неправильную версию.

Первое, что я бы сделал, это попытался загрузить и ссылаться на ваш код на сборки LINQ в вашем BIN, а не на поставщиков общего хостинга GAC.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться