Przeniesienie na nowe środowisko starej aplikacji MVC

0

Witam

Mama problem z przeniesieniem starej aplikacji MVC na nowe środowisko.

Nie mam dużego doświadczenie z MVC.

Po zaktualizowaniu wszystkich możliwych bibliotek
główny web.config

<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=152368
-->
<configuration>
<configSections>

<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections>
<!-- <configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net" />
</configSections> -->
<connectionStrings>
<add name="Database" connectionString="Data Source=KAROLSLUSZNIAKH\SQLEXPRESS;Initial Catalog=ASPDev2;Connection Timeout=0;User id=sa;Password=dupadupa;" providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="AdminEmail" value="[email protected]" />
</appSettings>
<!--
For a description of web.config changes for .NET 4.5 see http://go.microsoft.com/fwlink/?LinkId=235367.

The following attributes can be set on the <httpRuntime> tag.
<system.Web>
<httpRuntime targetFramework="4.5" />
</system.Web>
-->
<system.web>
<sessionState timeout="10" />
<httpRuntime maxRequestLength="2097151" maxQueryStringLength="2097151" />
<compilation debug="true" targetFramework="4.6.1">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, 31BF3856AD364E35=PublicKeyToken" />
<add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<authentication mode="Forms">
<forms loginUrl="~/auth/login" timeout="10" />
</authentication>
<membership defaultProvider="AdefektMembershipProvider">
<providers>
<clear />
<add name="AdefektMembershipProvider" type="AdEfektWeb.Models.AdefektMembershipProvider" />
</providers>
</membership>
<roleManager defaultProvider="AdefektRoleProvider" enabled="true" cacheRolesInCookie="true">
<providers>
<clear />
<add name="AdefektRoleProvider" type="AdEfektWeb.Models.AdefektRoleProvider" />
</providers>
</roleManager>
<pages controlRenderingCompatibilityVersion="4.0">
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
</namespaces>
</pages>
</system.web>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<!--Two elements removed for Clarity -->
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.webServer>
<directoryBrowse enabled="true" />
</system.webServer>
<!-- <log4net>
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<authentication value="Basic" />
<to value="[email protected]" />
<from value="[email protected]" />
<username value="[email protected]" />
<password value="N)^?)|@jl^4& EY" />
<subject value="AdEfekt/ScenarioPlanner/YouTube Exception" />
<smtpHost value="s1.trakos.pl" />
<bufferSize value="512" />
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
</layout>
</appender>

<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<file value="Files\log.txt" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<header value="[Header] " />
<footer value="[Footer] " />
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] <%property{auth}> - %message%newline" />
</layout>
</appender>

<root>
<level value="DEBUG" />
<appender-ref ref="SmtpAppender" />
</root>
</log4net> -->
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>

podczas kompilacji na start w _Layout.schtml

@{
AdEfektWeb.Models.Rows.Row_users loggedUser = AdEfektWeb.Models.Logic.Auth.getUser(User.Identity.Name);
}

wyrzuca komunikat błędu:
Nie można załadować pliku lub zestawu 'EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' lub jednej z jego zależności. Zlokalizowana definicja manifestu zestawu nie odpowiada odwołaniu do zestawu. (Wyjątek od HRESULT: 0x80131040)

nie wiem czemu odwołusie siędo wersji 4.1.0.0 jeśli jest referencja do versji 6.0.0. a runtime version=v4.0.30319

Z gódy dzięki za pomoc.

0

Wersja runtime nie ma nic do rzeczy. Jeśli chodzi o EF, to ważna jest ta wersja, z której korzysta Twój projekt, nie ta w web.config. Zainstaluj 4.1, albo zmigruj projekt do wersji, którą masz zainstalowaną (to trudniejsze rozwiązanie, bo przenieśli wiele kluczowych klas do innych namespaców).

0

Po wgraniu wersji 4.1 EF mam komunikat o

The type 'MaxLengthAttribute' exists in both 'EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' and 'System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'	

a gdy usunę System.ComponentModel.DataAnnotation to

The type or namespace name 'Required' could not be found (are you missing a using directive or an assembly reference?)	
0

No System.ComponentModel.DataAnnotations to raczej bym nie usuwał. Po prostu użyj pełnej nazwy tak, aby sprecyzować, czy chodzi Ci o MaxLengthAttribute z EF czy z DataAnnotations.

0

Mimo iż dodałem pełną nazwę to dalej ten sam błąd.

[System.ComponentModel.DataAnnotations.MinLengthAttribute(2, ErrorMessage = "nazwa workspace'u musi mieć przynajmniej 2 znaki!")]

dodam że pracuje w VS 2015

1 użytkowników online, w tym zalogowanych: 0, gości: 1