Сайт написан на C # и ASP.NET MVC компилирует страницы ASCX с помощью Visual Basic - PullRequest
0 голосов
/ 29 апреля 2010

Я занимаюсь разработкой веб-сайта в ASP.NET MVC с использованием C #. Он отлично работает на моей машине, однако, когда я загружаю его на рабочий сервер, он выдает ошибку при попытке представить домашнюю страницу.

Ошибка вызвана тем фактом, что система ASP компилирует страницы .ascx с использованием Visual Basic, что, конечно, не работает, поскольку весь код находится на C #.

Как мне это исправить?

Ответы [ 3 ]

0 голосов
/ 29 апреля 2010

Я обнаружил, что язык компилятора по умолчанию должен быть указан в файле web.config.

По некоторым причинам это не указано в моем проекте (который был построен с помощью шаблона Visual Studio). Похоже, что при локальном запуске система ASP правильно выводит язык по умолчанию, но при запуске на удаленном сервере по умолчанию используется Visual Basic.

Настройка языка компилятора по умолчанию устанавливается следующим образом:

<compilation
   defaultLanguage="c#"
/> 

где тег компиляции находится в теге system.web, который находится в теге конфигурации. Обратите внимание, что в defaultLanguages ​​есть заглавная буква L. Также обратите внимание, что обычно этот тег уже присутствует с большим количеством другой информации, вам просто нужно добавить атрибут defaultLanguage.

0 голосов
/ 28 мая 2010

У меня была эта проблема вчера, на самом деле ...

В ваших файлах .ascx вам нужно включить директиву control с соответствующим языковым атрибутом вверху страницы:

<%@ Control Language="C#" ... %>
0 голосов
/ 29 апреля 2010

Имеет ли ваше производственное приложение следующие настройки в конфигурации приложения?

<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <providerOption name="CompilerVersion" value="v3.5"/>
    <providerOption name="WarnAsError" value="false"/>
</compiler>

Кроме того, вы убедились, что ваша главная страница / просмотры содержат

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<YourType>" %>

и

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<LoginPageView>" %>

Спецификация языка?

...