У меня есть оператор SQL, который выполняется дважды при публикации в IIS, но выполняется только один раз, когда в Visual Studio;Я не уверен, почему это работает в одном, но не в другом.
Некоторая другая информация У меня есть подстановочный SSL, который прикреплен к серверу, и я вижу только один пост-запрос в журнале сети.Фактический код (с некоторыми изменениями для защиты личности сайта.)
public void AddMenuLink(MenuLinks m)
{
string sql = "INSERT INTO MY_TABLE (Href, Target, IsF, Name, MenuGroup)" +
" VALUES (@Href, @Target, @IsF, @Name, @MenuGroup)";
ConnHelper misc = new ConnHelper();
SqlConnection Conn = null;
SqlCommand sqlCmd = null;
try
{
Conn = misc.GetDataConnection();
sqlCmd = new SqlCommand(sql, Conn);
sqlCmd.Parameters.Add("@Href", SqlDbType.VarChar).Value = m.Href;
sqlCmd.Parameters.Add("@Target", SqlDbType.VarChar).Value = m.Target;
sqlCmd.Parameters.Add("@Iswolf", SqlDbType.VarChar).Value = m.IsF;
sqlCmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = m.Name;
sqlCmd.Parameters.Add("@MenuGroup", SqlDbType.VarChar).Value = m.MenuGroup;
sqlCmd.ExecuteScalar();
}
catch (Exception ex)
{
}
finally
{
Conn.Close();
}
}
Код, который его вызывает:
if (Request.Form["Add"] == "Add")
{
MenuLinks M = new MenuLinks();
// Check if upload
int uploadFlag = 0;
if (file != null && file.ContentLength > 0)
{
uploadFlag = 1;
var fileName = Path.GetFileName(file.FileName);
string fileExt = Path.GetExtension(file.FileName);
try
{
//Original and used for viewing
string pathing = FILE_SHARE + "\\";
System.IO.Directory.CreateDirectory(pathing);
var path = Path.Combine(pathing, file.FileName);
file.SaveAs(Path.Combine(pathing, fileName));
//Backup
string pathing2 = BACKUP_SHARE + "\\";
System.IO.Directory.CreateDirectory(pathing2);
var path2 = Path.Combine(pathing2, file.FileName);
file.SaveAs(Path.Combine(pathing2, fileName));
//save path in database get ID.
M.Href = "http://MYSITE/Content/" + HttpUtility.UrlEncode(file.FileName);
}
catch (Exception ex)
{
ViewBag.error = ex.ToString();
ViewBag.error += " Saving File FAILED IN ADD";
uploadFlag = 2;
}
}
if(uploadFlag == 0)
{
//if there is no upload href get the one from link
M.Href = Request.Form["Href"];
}
M.Target = Request.Form["Target"];
M.Name = Request.Form["Name"];
M.IsF = Request.Form["IsF"];
M.MenuGroup = Request.Form["MenuGroup"];
// filter uploads
if (uploadFlag != 2)
{
DB.AddMenuLink(M);
}
}
В представлении есть три формы, добавьте/edit/delete.
В представлении у меня есть это (Добавить только раздел):
<form action="" method="post" enctype="multipart/form-data">
<p>File Upload</p>
<input type="file" name="file" id="file" /><br />
<p>Link (leave blank if uploading file)</p>
<input type="text" name="Href" id="href" /><br />
<p>Target</p>
<select name="Target" id="Target">
<option value="_self">In frame</option>
<option value="_blank">New window</option>
</select>
<br />
<p>Name</p>
<input type="text" name="Name" id="Name" /><br />
<p>Tagged For:</p>
<input type="radio" name="IsF" value="Both" checked />Both<br />
<input type="radio" name="IsF" value="0" />One<br />
<input type="radio" name="IsF" value="1" />The Other<br />
<br />
<p>Menu Group</p>
<select name="MenuGroup" id="MenuGroup">
@{
x.MenuGroup = "";
for (int i = 0; i < 10; i++)
{
x.getMenuGroup(i);
if (x.MenuGroup != "")
{
@Html.Raw("<option value='" + x.MenuGroup + "'>" + x.MenuGroup + "</option>")
x.MenuGroup = "";
}
}
}
</select>
<br />
<input type="submit" value="Add" name="Add" />
</form>
Есть идеи?