Jag jobbar med en hel del konton som ligger på ett av Sveriges största webbhotell. De har tydligen bytat mjuk & hårdvara, och efter detta omkompileras bara asp.net filer 1grr / dygn. Alltså om jag ändrar 1 tecken i en aspx fil kan inte denna ändring ses fören omkompileringen gjorts. Har aldrig hört talas om detta tidigare. Min fråga är: vad beror detta på, och vad kan man göra åt saken (förutom att byta hotell)? Blir det nån skillnad om du uppdaterar web.config? Det borde väl boota om appen helt och där med omkompilera gissar jag. Alternativt kan du troligen ställa in det i web.config. Inte helt säker, men det låter troligt. Även om de kan ha stängt ner den möjligheten om de nu vil spara kraft på servern... Det gör ingen skillnad om jag uppdaterar web.config. Det låter underligt, det måste vara en överstyrning så JIT-kompilern inte körs som den skall - nån fiffig feature med andra ord ;) Att utveckla lokalt är ju inte alltid möjligt. Håller bla på med en del integreringar av betallösningar och de måste köras skarpt på servern för att det skall funka. Jag jobbar ganska mycket med inline kod för användargränssnittet och gillar inte riktigt förkompilering av UI eftersom det blir bökigare att göra små ändringar. Kolla setting numrecompilesbeforeapprestart Hej, jag har nu råkat ut för samma problem, två applikationer som flyttats till Loopias nya NAS-lösning. Gör jag en ändring i web.config får jag vänta ett dygn innan ändringen slår igenom. Vid file upload hämtar jag sökvägen från web.config, men detta får jag inte att fungera efter flytten, och Loopias support klarar inte att hjälpa till. Testa att använda dig av Request.ServerVariables["APPL_PHYSICAL_PATH"] istället för att lägga in sökvägen i web.config Fredrik. Jag vet, men detta strular en del. Tyvärr upplyser inte Loopia om detta men de är medvetna om problemet. Alltså ingen stabil grej. De skyller allt på MS och hänvisar till en massa kb och uppmanar till förkompilerade grejjer. Joakim Tackar för svaren ska genast testa, Hej igen, ändrade koden som du föreslog Benni, men får då följande fel:Automatisk omkompilering asp.net
Som utvecklare är ju en sådan här grej ohållbar. Allt jag läst om asp.net och kompilering säger att detta sker direkt vid ändringar, har tydligen missat något vitalt här.Sv: Automatisk omkompilering asp.net
Alternativt gör du en kompilerad web själv istället för att låta servern kompilera åt dig. På det viset borde du tvinga fram en lösning. Använd Publish Website i VS eller använd ett ASP.NET projekt istället för en website så får du en dll som i .NET 1.1 och det borde kanske lösa problemet. Bara en tanke...Sv:Automatisk omkompilering asp.net
Tyvärr är flera projekt inte möjliga att först förkompilera för mig.
Hotellet påstår att det är något med mjukvaran som orsakat detta. De har tydligen nyligen bytat enligt deras support. Borde vara en hel del folk som märkt av detta då det rör sig om en av jättarna på den svenska webbhotellsmarknaden.Sv: Automatisk omkompilering asp.net
Jag har då som tips att utveckla lokalt, kompilera som vanligt (kör du 2005 så publish website) och skicka inte med källkoden till hotellet utan kör kompilerat - det går snabbare också ..
Ps. Kontakta hotellet med dina synpunkter och referera till den här tråden om du vill. Berätta också gärna vilket hotell för det är ju viktigt för andra hemsidebyggare att få veta detta så de inte gör fel val när de bestämmer hotell.. - även om det är Ballou ;)Sv:Automatisk omkompilering asp.net
Sen vill ju kunderna ibland lägga till lite text i aspx filerna och då får de ju vänta 1 dygn i värsta fall.
Att det skulle gå snabbare att inte skicka med källkoden till hotellet stämmer väl bara första gången applikationen körs efter en ändring. Då skall omkompileringen ske och det hela rullar sedan på som om det vore förkompilerat, rätt/fel?.
[edit] hotellet ja, det är Loopia det är frågan om och konton som ligger på deras klusterlösning. Gamla konton verkar funka??[/edit]Sv: Automatisk omkompilering asp.net
http://support.microsoft.com/kb/319947
Har inte provat själv.
//DanielSv:Automatisk omkompilering asp.net
Tacksam för hjälp...
Jag lägger till felmeddelandet, och längre ned den kod jag använder.
Här är felmeddelandet:
Server Error in '/' Application.
--------------------------------------------------------------------------------
The SaveAs method is configured to require a rooted path, and the path '@\\172.21.204.202\\webvol6\\z4\\dh2m1zum3dqv3ev\\abrahamsgarden.com\\public_html\\bilder\\artwork\\cameraraw.jpg' is not rooted.
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.Web.HttpException: The SaveAs method is configured to require a rooted path, and the path '@\\172.21.204.202\\webvol6\\z4\\dh2m1zum3dqv3ev\\abrahamsgarden.com\\public_html\\bilder\\artwork\\cameraraw.jpg' is not rooted.
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:
[HttpException (0x80004005): The SaveAs method is configured to require a rooted path, and the path '@\\172.21.204.202\\webvol6\\z4\\dh2m1zum3dqv3ev\\abrahamsgarden.com\\public_html\\bilder\\artwork\\cameraraw.jpg' is not rooted.]
System.Web.HttpPostedFile.SaveAs(String filename) +3322707
System.Web.UI.WebControls.FileUpload.SaveAs(String filename) +22
FileUpload.Button1_Click(Object sender, EventArgs e) +206
System.EventHandler.Invoke(Object sender, EventArgs e) +0
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.1433; ASP.NET Version:2.0.50727.1433
Kod för fileupload:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
public partial class FileUpload : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
// Before attempting to save the file, verify
// that the FileUpload control contains a file.
if (FileUpload1.HasFile)
{
// Get the size in bytes of the file to upload.
int fileSize = FileUpload1.PostedFile.ContentLength;
// Get the name of the file to upload.
string fileName = Server.HtmlEncode(FileUpload1.FileName);
// Get the extension of the uploaded file.
string extension = System.IO.Path.GetExtension(fileName);
// Allow only files with .doc or .xls extensions
// to be uploaded.
if ((extension == ".jpg") | (extension == ".jpeg"))
{
// Allow only files less than 2,100,000 bytes (approximately 2 MB) to be uploaded.
if (fileSize < 1050000)
{
// Call the SaveAs method to save the
// uploaded file to the specified path.
// This example does not perform all
// the necessary error checking.
// If a file with the same name
// already exists in the specified path,
// the uploaded file overwrites it.
//string dtn = DateTime.Now.ToShortDateString();
//fileName = strHelaNamnet2 + dtn;
string sFileDirSmall = ConfigurationManager.AppSettings["PhotoPathArtwork"];
FileUpload1.SaveAs(sFileDirSmall + fileName);
// Notify the user that the file was uploaded successfully.
lblUpload.Text = "Bilden är uppladdad.";
//this.TextBoxPhotourl.Text = "~/bilder/artwork/" + FileUpload1.FileName;
}
else
{
// Notify the user why their file was not uploaded.
lblUpload.Text = "Problem: din bild är för stor " +
"den får vara max 1000kb.";
}
}
else
{
// Notify the user why their file was not uploaded.
lblUpload.Text = "Din bild är av fel typ " +
"endast bilder med ändelsen .jpg eller .jpeg kan laddas upp.";
}
}
else
{
this.lblUpload.Text = "Peka på en bild";
return;
}
}
}
Sv: Automatisk omkompilering asp.net
Riktigt piss med Loopias lösning. Men vad det gäller konfigurationsgrejjer som ibland ändras kan du komma runt problemet genom att spara inställningar i en xml fil istället och läsa in dem därifrån. De berörs ju inte av omkompileringsgrejjen.
Loopia la in en knapp i kontrollpanelen så man kan göra omkompilering själv. Funkade ett tag men nu verkar det juckat ur totalt. Deras support skiter fullständigt i problemet. Bara standardsvar som att man skall förkompilera istället, bla, bla. Tja det säger ju en del om deras kundbemötande. Nästa steg är väl att de vill att all asp.net skall portas till något php trams.Sv:Automatisk omkompilering asp.net
Jag hadde samma problem (jag har mitt på Loopia) men du kan gå in i admin och starta on Asp.net
manuellt.Sv: Automatisk omkompilering asp.net
Sv:Automatisk omkompilering asp.net
I min apload så fixar jag pathen med
<code>
savePath = Request.PhysicalApplicationPath + "Image\\";
</code>
Fungerar perfekt.Sv: Automatisk omkompilering asp.net
återkommer med svar hur det går ...Sv:Automatisk omkompilering asp.net
Server Error in '/' Application.
--------------------------------------------------------------------------------
Security Exception
Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.
Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
Någon som kan hjälpa mig att hjälpa Loopia :-)
/Jocke